home *** CD-ROM | disk | FTP | other *** search
/ System Booster / System Booster.iso / Texteditors / Origami / bindings / emacs-fun / ref.ocl < prev    next >
Encoding:
Text File  |  1996-09-27  |  178.9 KB  |  4,729 lines

  1. @use( file-reference sokoban-call-ref regexp-reference cmd-reference)
  2. @if-using(REF-TREE)
  3. @reference-begin-class 1
  4.                             tags-mac-reference-file  
  5.                            ------------------------- 
  6.  
  7. @reference-end
  8. @use(U-C-1)
  9. @fi
  10. @if-using ( complete )
  11. @if-using(REF-TREE)
  12. @reference-begin-class 1
  13.    < A > Description
  14. @reference-end
  15. @reference-begin-class 2
  16.      Description  
  17.     ------------- 
  18.  
  19. @reference-end
  20. @use(U-C-1)
  21. @use(U-C-2)
  22. @fi
  23. @if-using ( complete )
  24. @if-using(REF-TREE)
  25. @reference-begin-class 2
  26.    This is a libary file, supporting the standard (vi-known) tags file for 
  27.    moving to other positions and tag-completion! 
  28.  
  29.    This package can only be used, if Origami is compiled to support regular 
  30.    expressions. 
  31.  
  32.    < A > conditional compilation
  33. @reference-end
  34. @reference-begin-class 3
  35.      conditional compilation  
  36.     ------------------------- 
  37.  
  38.    If this package is included more than once, all needed tags have to be 
  39.    defined at the first include! The following tags can be set: 
  40.  
  41.  
  42.    +------------------+----------------------------------------------------+
  43.    | Tag              | Function                                           |
  44.    +------------------+----------------------------------------------------+
  45.    | E-G-T-ABUFF      | enter-and-go-tags-adjacent-buffer                  |
  46.    | E-G-T-BUFF       | enter-and-go-tags-buffer                           |
  47.    | E-O-T-ABUFF      | enter-and-open-tags-adjacent-buffer                |
  48.    | E-O-T-BUFF       | enter-and-open-tags-buffer                         |
  49.    | F-G-T-ABUFF      | find-and-go-tags-adjacent-buffer                   |
  50.    | F-G-T-BUFF       | find-and-go-tags-buffer                            |
  51.    | F-O-T-ABUFF      | find-and-open-tags-adjacent-buffer                 |
  52.    | F-O-T-BUFF       | find-and-open-tags-buffer                          |
  53.    | FE-G-T-ABUFF     | find-or-enter-and-go-tags-adjacent-buffer          |
  54.    | FE-G-T-BUFF      | find-or-enter-and-go-tags-buffer                   |
  55.    | FE-O-T-ABUFF     | find-or-enter-and-open-tags-adjacent-buffer        |
  56.    | FE-O-T-BUFF      | find-or-enter-and-open-tags-buffer                 |
  57.    | GO-TAG-MARK      | go-tag-mark                                        |
  58.    | I-T-FILE         | insert-tags-file                                   |
  59.    | O-T-AFILE        | open-adjacent-buffer-tags-file                     |
  60.    | O-T-FILE         | open-buffer-tags-file                              |
  61.    | Q-U-G-T-BUFF     | quit-unchanged-to-other-buffer                     |
  62.    | S-N-I-T          | search-next-incorrect-tag-entry                    |
  63.    | S-U-T-FILE       | set-user-tag                                       |
  64.    | T-COMP           | tag-completion                                     |
  65.    +------------------+----------------------------------------------------+
  66.  
  67.  
  68.    If your filesystems uses special names for absolut filenames, define the 
  69.    tag ROOT-TEST and a function, returning true, if the word starting at 
  70.    current cursor position is an absolute filename. 
  71. @reference-end
  72. @reference-begin-class 2
  73.    < B > error/message return
  74. @reference-end
  75. @reference-begin-class 4
  76.      error/message return  
  77.     ---------------------- 
  78.  
  79.    The OCL-variable tags-error contains the error/message coding for the tags 
  80.    actions: 
  81.  
  82.  
  83.       +-------+----------------------------------------------------+
  84.       | Value | Error/Message                                      |
  85.       +-------+----------------------------------------------------+
  86.       | 0     | ok                                                 |
  87.       | 1     | tagged file edited more than once                  |
  88.       | 2     | no tag iven                                        |
  89.       | 3     | cannot open tags-file                              |
  90.       | 4     | no valid tag in tags-file                          |
  91.       | 5     | cannot open tagged file                            |
  92.       | 6     | tag notfound in tagged file                        |
  93.       | 7     | File edted only once                               |
  94.       | 8     | Currentbuffer is changed                           |
  95.       | 9     | position not found in other buffer (folds entered) |
  96.       | 10    | position not found in other buffer                 |
  97.       | 11    | using yur tags file first                          |
  98.       | 12    | using dfault tags files                            |
  99.       | 13    | Sorry, o regular expressions!                      |
  100.       | *     | unspecified error                                  |
  101.       +-------+----------------------------------------------------+
  102. @reference-end
  103. @use(U-C-2)
  104. @use(U-C-3)
  105. @use(ref-viewer-1-0-USED)
  106. @use(U-C-4)
  107. @use(ref-viewer-1-2-USED)
  108. @fi
  109. @fi
  110. @fi
  111. @if-using ( complete file-reference )
  112. @if-using(REF-TREE)
  113. @reference-begin-class 1
  114.    < B > Tags file
  115. @reference-end
  116. @reference-begin-class 5
  117.      Tags file  
  118.     ----------- 
  119.  
  120. @reference-end
  121. @use(U-C-1)
  122. @use(U-C-5)
  123. @fi
  124. @if-using ( complete file-reference )
  125. @if-using(REF-TREE)
  126. @reference-begin-class 5
  127.    If you want to use the tags facilities, Origami needs to read a special 
  128.    tags file. The functions try to use the first of the following files: 
  129.  
  130.           +--------------------------------------------------+
  131.           | File                                             |
  132.           +--------------------------------------------------+
  133.           | directory-of-file/tags or file/tags (*)          |
  134.           | tags                                             |
  135.           | ~/tags                                           |
  136.           | ~/.oritags                                       |
  137.           +--------------------------------------------------+
  138.    *         depending on the type of the current file. 
  139.  
  140.  
  141.    During the editor session, you can specify another tags file, using 
  142.    function set-user-tags-file. 
  143.  
  144.    Entries in the tags file are normal tags entries: 
  145.    < A > tag filename search-exp
  146. @reference-end
  147. @reference-begin-class 6
  148.      tag filename search-exp  
  149.     ------------------------- 
  150.  
  151.  
  152.      +------------+--------------------------------------------------+
  153.      | Item       | Meaning                                          |
  154.      +------------+--------------------------------------------------+
  155.      | tag        | name of a tag, a string                          |
  156.      | filename   | a string                                         |
  157.      | search-exp | /^text$/                                         |
  158.      |            | ?^text$?                                         |
  159.      |            | /^text/                                          |
  160.      |            | ?^text?                                          |
  161.      |            | /text$/                                          |
  162.      |            | ?text$?                                          |
  163.      |            | /text/                                           |
  164.      |            | ?text?                                           |
  165.      +------------+--------------------------------------------------+
  166.  
  167.  
  168.    These entries might be produced by ctags! 
  169. @reference-end
  170. @reference-begin-class 5
  171.    < B > tag filename line-number
  172. @reference-end
  173. @reference-begin-class 7
  174.      tag filename line-number  
  175.     -------------------------- 
  176.  
  177.  
  178.      +------------+--------------------------------------------------+
  179.      | Item       | Meaning                                          |
  180.      +------------+--------------------------------------------------+
  181.      | tag        | name of a tag, a string                          |
  182.      | filename   | a string                                         |
  183.      | line-numbe | a sequence of digits 0..9                        |
  184.      +------------+--------------------------------------------------+
  185.  
  186.  
  187.    These entries might be produced by ctags! 
  188. @reference-end
  189. @reference-begin-class 5
  190.    < C > tag file Bexpression
  191. @reference-end
  192. @reference-begin-class 8
  193.      tag file Bexpression  
  194.     ---------------------- 
  195.  
  196.  
  197.      +------------+--------------------------------------------------+
  198.      | Item       | Meaning                                          |
  199.      +------------+--------------------------------------------------+
  200.      | tag        | name of a tag, a string                          |
  201.      | filename   | a string                                         |
  202.      | expression | a basic-regular search expression                |
  203.      +------------+--------------------------------------------------+
  204.  
  205.  
  206.    These entries are an extension to the standard tags syntax! 
  207. @reference-end
  208. @reference-begin-class 5
  209.    < D > tag file Eexpression
  210. @reference-end
  211. @reference-begin-class 9
  212.      tag file Eexpression  
  213.     ---------------------- 
  214.  
  215.  
  216.      +------------+--------------------------------------------------+
  217.      | Item       | Meaning                                          |
  218.      +------------+--------------------------------------------------+
  219.      | tag        | name of a tag, a string                          |
  220.      | filename   | a string                                         |
  221.      | expression | a extended-regular search expression             |
  222.      +------------+--------------------------------------------------+
  223.  
  224.  
  225.    These entries are an extension to the standard tag syntax! 
  226. @reference-end
  227. @reference-begin-class 5
  228.    < E > string
  229. @reference-end
  230. @reference-begin-class 10
  231.      string  
  232.     -------- 
  233.  
  234.    `tag-completion' reads only the first word on the lines. So a line 
  235.    containing a simple string can be used to add keywords for tag-completion! 
  236.    Such short entries cannot be used for jumping to a tagged position! 
  237. @reference-end
  238. @use(U-C-5)
  239. @use(U-C-6)
  240. @use(ref-viewer-1-0-USED)
  241. @use(U-C-7)
  242. @use(U-C-8)
  243. @use(U-C-9)
  244. @use(U-C-10)
  245. @use(ref-viewer-1-5-USED)
  246. @fi
  247. @fi
  248. @fi
  249. @if-using ( complete find-open-ref find-aopen-ref enter-open-ref enter-aopen-ref find-go-ref find-ago-ref enter-go-ref enter-ago-ref fe-open-ref fe-aopen-ref fe-go-ref fe-ago-ref go-tag-mark-ref )
  250. @if-using(REF-TREE)
  251. @reference-begin-class 1
  252.    < C > Tags
  253. @reference-end
  254. @reference-begin-class 11
  255.      Tags  
  256.     ------ 
  257.  
  258. @reference-end
  259. @use(U-C-1)
  260. @use(U-C-11)
  261. @fi
  262. @if-using ( complete find-open-ref find-aopen-ref enter-open-ref enter-aopen-ref find-go-ref find-ago-ref enter-go-ref enter-ago-ref fe-open-ref fe-aopen-ref fe-go-ref fe-ago-ref go-tag-mark-ref )
  263. @if-using(REF-TREE)
  264. @reference-begin-class 11
  265.    Tags are defined using two character sets: 
  266.  
  267.    c-tags-x-word-set / c-tags-word-set 
  268.              tag names are buildt using only these characters, 
  269.              c-tags-x-word-set is only used, if language None is active. 
  270.  
  271.  
  272.    c-tags-start-word-set: 
  273.              first character has to be in this set 
  274.  
  275.  
  276.    Default values are: 
  277.  
  278.    ( defset c-tags-start-word-set ( alpha ) ) 
  279.    ( defset c-tags-word-set ( alpha digit "_ ) ) 
  280.    ( defset c-tags-x-word-set ( c-tags-word-set "- ) ) 
  281.  
  282.  
  283.    Changing these sets at runtime, changes the tag-search algorythm! 
  284.    c-tags-start-word-set has to be a subset of c-tags-word-set! 
  285. @reference-end
  286. @use(U-C-11)
  287. @use(ref-viewer-1-0-USED)
  288. @fi
  289. @fi
  290. @fi
  291. @if-using ( complete quit-unchanged-ref find-go-ref find-ago-ref enter-go-ref enter-ago-ref fe-go-ref fe-ago-ref go-tag-mark-ref find-open-ref find-aopen-ref enter-open-ref enter-aopen-ref find-go-ref find-ago-ref enter-go-ref enter-ago-ref fe-open-ref fe-aopen-ref fe-go-ref fe-ago-ref go-tag-mark-ref set-tf-ref in-tf-ref o-tf-ref ao-tf-ref tag-completion )
  292. @if-using(REF-TREE)
  293. @reference-begin-class 1
  294.    < D > Functions and macros
  295. @reference-end
  296. @reference-begin-class 12
  297.      Functions and macros  
  298.     ---------------------- 
  299.  
  300. @reference-end
  301. @use(U-C-1)
  302. @use(U-C-12)
  303. @fi
  304. @if-using ( complete quit-unchanged-ref find-go-ref find-ago-ref enter-go-ref enter-ago-ref fe-go-ref fe-ago-ref go-tag-mark-ref )
  305. @if-using(REF-TREE)
  306. @reference-begin-class 12
  307.    < A > quit-unchanged-to-other-buffer
  308. @reference-end
  309. @reference-begin-class 13
  310.      quit-unchanged-to-other-buffer  
  311.     -------------------------------- 
  312.  
  313.    If the current buffer contains a unchanged file, also edited in other 
  314.    buffer[s], the macro tries to reach the same position in the other buffer. 
  315.    Searching with a regular expression for the current line does not exit 
  316.    entered folds! 
  317. @reference-end
  318. @use(U-C-12)
  319. @use(U-C-13)
  320. @use(ref-viewer-1-0-USED)
  321. @fi
  322. @fi
  323. @if-using ( complete find-open-ref find-aopen-ref enter-open-ref enter-aopen-ref find-go-ref find-ago-ref enter-go-ref enter-ago-ref fe-open-ref fe-aopen-ref fe-go-ref fe-ago-ref go-tag-mark-ref )
  324. @if-using ( complete go-tag-mark-ref )
  325. @if-using(REF-TREE)
  326. @reference-begin-class 12
  327.    < B > go-tag-mark
  328. @reference-end
  329. @reference-begin-class 14
  330.      go-tag-mark  
  331.     ------------- 
  332.  
  333.    This is the function, used by all enter/find tags commands. It uses three 
  334.    boolean arguments: 
  335.  
  336.    adjacent  open buffer adjacent 
  337.    unique    switch to existing buffer, if possible 
  338.    extend    is tags given as prefix 
  339.  
  340.  
  341.    It uses the last value in search-history. 
  342.  
  343.    < A > Tags
  344.    < B > quit-unchanged-to-other-buffer
  345. @reference-end
  346. @use(U-C-12)
  347. @use(U-C-14)
  348. @use(ref-viewer-1-2-USED)
  349. @fi
  350. @fi
  351. @if-using ( complete find-open-ref find-aopen-ref enter-open-ref enter-aopen-ref )
  352. @if-using(REF-TREE)
  353. @reference-begin-class 12
  354.    < C > open tags buffer
  355. @reference-end
  356. @reference-begin-class 15
  357.      open tags buffer  
  358.     ------------------ 
  359.  
  360. @reference-end
  361. @use(U-C-12)
  362. @use(U-C-15)
  363. @fi
  364. @if-using ( find-open-ref )
  365. @if-using(REF-TREE)
  366. @reference-begin-class 15
  367.    < A > find-and-open-tags-buffer
  368. @reference-end
  369. @reference-begin-class 16
  370.      find-and-open-tags-buffer  
  371.     --------------------------- 
  372.  
  373.    Open a new buffer, using the word under the cursor as tag. 
  374.  
  375.    < A > Tags
  376. @reference-end
  377. @use(U-C-15)
  378. @use(U-C-16)
  379. @use(ref-viewer-1-1-USED)
  380. @fi
  381. @fi
  382. @if-using ( find-aopen-ref )
  383. @if-using(REF-TREE)
  384. @reference-begin-class 15
  385.    < B > find-and-open-tags-adjacent-buffer
  386. @reference-end
  387. @reference-begin-class 17
  388.      find-and-open-tags-adjacent-buffer  
  389.     ------------------------------------ 
  390.  
  391.    Open a new adjacent buffer, using the word under the cursor as tag. 
  392.  
  393.    < A > Tags
  394. @reference-end
  395. @use(U-C-15)
  396. @use(U-C-17)
  397. @use(ref-viewer-1-1-USED)
  398. @fi
  399. @fi
  400. @if-using ( enter-open-ref )
  401. @if-using(REF-TREE)
  402. @reference-begin-class 15
  403.    < C > enter-and-open-tags-buffer
  404. @reference-end
  405. @reference-begin-class 18
  406.      enter-and-open-tags-buffer  
  407.     ---------------------------- 
  408.  
  409.    Open a new buffer for a tag, the macros prompt for. Using 
  410.    filename-completion will end the input and searches the first tag, 
  411.    beginning with the given string! 
  412.  
  413.    < A > Tags
  414.  
  415.  
  416.    enter-and-open-tags-buffer calls the hooks begin-prompt-macro and 
  417.    end-prompt-macro, so they have to be defined here, if you need them! 
  418. @reference-end
  419. @use(U-C-15)
  420. @use(U-C-18)
  421. @use(ref-viewer-1-1-USED)
  422. @fi
  423. @fi
  424. @if-using ( enter-aopen-ref )
  425. @if-using(REF-TREE)
  426. @reference-begin-class 15
  427.    < D > enter-and-open-tags-adjacent-buffer
  428. @reference-end
  429. @reference-begin-class 19
  430.      enter-and-open-tags-adjacent-buffer  
  431.     ------------------------------------- 
  432.  
  433.    Open a new adjacent buffer for a tag, the macros prompt for. Using 
  434.    filename-completion will end the input and searches the first tag, 
  435.    beginning with the given string! 
  436.  
  437.    < A > Tags
  438.  
  439.  
  440.    enter-and-open-tags-adjacent buffer calls the hooks begin-prompt-macro and 
  441.    end-prompt-macro, so they have to be defined here, if you need them! 
  442. @reference-end
  443. @use(U-C-15)
  444. @use(U-C-19)
  445. @use(ref-viewer-1-1-USED)
  446. @use(ref-viewer-1-4-USED)
  447. @fi
  448. @fi
  449. @fi
  450. @if-using ( complete find-go-ref find-ago-ref enter-go-ref enter-ago-ref )
  451. @if-using(REF-TREE)
  452. @reference-begin-class 12
  453.    < D > go tags buffer
  454. @reference-end
  455. @reference-begin-class 20
  456.      go tags buffer  
  457.     ---------------- 
  458.  
  459. @reference-end
  460. @use(U-C-12)
  461. @use(U-C-20)
  462. @fi
  463. @if-using ( find-go-ref )
  464. @if-using(REF-TREE)
  465. @reference-begin-class 20
  466.    < A > find-and-go-tags-buffer
  467. @reference-end
  468. @reference-begin-class 21
  469.      find-and-go-tags-buffer  
  470.     ------------------------- 
  471.  
  472.    Open a new buffer, using the word under the cursor as tag. Tries 
  473.    quit-unchanged-to-other-buffer-ref to reduce the number of buffers. 
  474.  
  475.    < A > Tags
  476.    < B > quit-unchanged-to-other-buffer
  477. @reference-end
  478. @use(U-C-20)
  479. @use(U-C-21)
  480. @use(ref-viewer-1-2-USED)
  481. @fi
  482. @fi
  483. @if-using ( find-ago-ref )
  484. @if-using(REF-TREE)
  485. @reference-begin-class 20
  486.    < B > find-and-go-tags-adjacent-buffer
  487. @reference-end
  488. @reference-begin-class 22
  489.      find-and-go-tags-adjacent-buffer  
  490.     ---------------------------------- 
  491.  
  492.    Open a new adjacent buffer, using the word under the cursor as tag. Tries 
  493.    quit-unchanged-to-other-buffer-ref to reduce the number of buffers. 
  494.  
  495.    < A > Tags
  496.    < B > quit-unchanged-to-other-buffer
  497. @reference-end
  498. @use(U-C-20)
  499. @use(U-C-22)
  500. @use(ref-viewer-1-2-USED)
  501. @fi
  502. @fi
  503. @if-using ( enter-go-ref )
  504. @if-using(REF-TREE)
  505. @reference-begin-class 20
  506.    < C > enter-and-go-tags-buffer
  507. @reference-end
  508. @reference-begin-class 23
  509.      enter-and-go-tags-buffer  
  510.     -------------------------- 
  511.  
  512.    Open a new buffer for a tag, the macros prompt for. Using 
  513.    filename-completion will end the input and searches the first tag, 
  514.    beginning with the given string! 
  515.  
  516.    Tries quit-unchanged-to-other-buffer-ref to reduce the number of buffers. 
  517.  
  518.    < A > Tags
  519.    < B > quit-unchanged-to-other-buffer
  520.  
  521.  
  522.    enter-and-go-tags-buffer calls the hooks begin-prompt-macro and 
  523.    end-prompt-macro, so they have to be defined here, if you need them! 
  524. @reference-end
  525. @use(U-C-20)
  526. @use(U-C-23)
  527. @use(ref-viewer-1-2-USED)
  528. @fi
  529. @fi
  530. @if-using ( enter-ago-ref )
  531. @if-using(REF-TREE)
  532. @reference-begin-class 20
  533.    < D > enter-and-go-tags-adjacent-buffer
  534. @reference-end
  535. @reference-begin-class 24
  536.      enter-and-go-tags-adjacent-buffer  
  537.     ----------------------------------- 
  538.  
  539.    Open a new buffer for a tag, the macros prompt for. Using 
  540.    filename-completion will end the input and searches the first tag, 
  541.    beginning with the given string! 
  542.  
  543.    Tries quit-unchanged-to-other-buffer-ref to reduce the number of buffers. 
  544.  
  545.    < A > Tags
  546.    < B > quit-unchanged-to-other-buffer
  547.  
  548.  
  549.    enter-and-go-tags-adjacent-buffer calls the hooks begin-prompt-macro and 
  550.    end-prompt-macro, so they have to be defined here, if you need them! 
  551. @reference-end
  552. @use(U-C-20)
  553. @use(U-C-24)
  554. @use(ref-viewer-1-2-USED)
  555. @use(ref-viewer-1-4-USED)
  556. @fi
  557. @fi
  558. @fi
  559. @if-using ( complete fe-open-ref fe-aopen-ref fe-go-ref fe-ago-ref)
  560. @if-using(REF-TREE)
  561. @reference-begin-class 12
  562.    < E > find or enter tags buffer
  563. @reference-end
  564. @reference-begin-class 25
  565.      find or enter tags buffer  
  566.     --------------------------- 
  567.  
  568. @reference-end
  569. @use(U-C-12)
  570. @use(U-C-25)
  571. @fi
  572. @if-using ( fe-open-ref )
  573. @if-using(REF-TREE)
  574. @reference-begin-class 25
  575.    < A > find-or-enter-and-open-tags-buffer
  576. @reference-end
  577. @reference-begin-class 26
  578.      find-or-enter-and-open-tags-buffer  
  579.     ------------------------------------ 
  580.  
  581.    Open a new buffer for a tag, using the word under the cursor. If failling, 
  582.    the macros prompts for a tag. Using filename-completion will end the input 
  583.    and searches the first tag, beginning with the given string! 
  584.  
  585.    < A > Tags
  586.  
  587.  
  588.    find-or-enter-and-open-tags-buffer calls the hooks begin-prompt-macro and 
  589.    end-prompt-macro, so they have to be defined here, if you need them! 
  590. @reference-end
  591. @use(U-C-25)
  592. @use(U-C-26)
  593. @use(ref-viewer-1-1-USED)
  594. @fi
  595. @fi
  596. @if-using ( fe-aopen-ref )
  597. @if-using(REF-TREE)
  598. @reference-begin-class 25
  599.    < B > find-or-enter-and-open-tags-adjacent-buffer
  600. @reference-end
  601. @reference-begin-class 27
  602.      find-or-enter-and-open-tags-adjacent-buffer  
  603.     --------------------------------------------- 
  604.  
  605.    Open a new adjacent buffer for a tag, using the word under the cursor. If 
  606.    failling, the macros prompts for a tag. Using filename-completion will end 
  607.    the input and searches the first tag, beginning with the given string! 
  608.  
  609.    < A > Tags
  610.  
  611.  
  612.    find-or-enter-and-open-tags-adjacent-buffer calls the hooks 
  613.    begin-prompt-macro and end-prompt-macro, so they have to be defined here, 
  614.    if you need them! 
  615. @reference-end
  616. @use(U-C-25)
  617. @use(U-C-27)
  618. @use(ref-viewer-1-1-USED)
  619. @fi
  620. @fi
  621. @if-using ( fe-go-ref )
  622. @if-using(REF-TREE)
  623. @reference-begin-class 25
  624.    < C > find-or-enter-and-go-tags-buffer
  625. @reference-end
  626. @reference-begin-class 28
  627.      find-or-enter-and-go-tags-buffer  
  628.     ---------------------------------- 
  629.  
  630.    Open a new buffer for a tag, using the word under the cursor. If failling, 
  631.    the macros prompts for a tag. Using filename-completion will end the input 
  632.    and searches the first tag, beginning with the given string! 
  633.  
  634.    Tries quit-unchanged-to-other-buffer-ref to reduce the number of buffers. 
  635.  
  636.    < A > Tags
  637.    < B > quit-unchanged-to-other-buffer
  638.  
  639.  
  640.    find-or-enter-and-go-tags-buffer calls the hooks begin-prompt-macro and 
  641.    end-prompt-macro, so they have to be defined here, if you need them! 
  642. @reference-end
  643. @use(U-C-25)
  644. @use(U-C-28)
  645. @use(ref-viewer-1-2-USED)
  646. @fi
  647. @fi
  648. @if-using ( fe-ago-ref )
  649. @if-using(REF-TREE)
  650. @reference-begin-class 25
  651.    < D > find-or-enter-and-go-tags-adjacent-buffer
  652. @reference-end
  653. @reference-begin-class 29
  654.      find-or-enter-and-go-tags-adjacent-buffer  
  655.     ------------------------------------------- 
  656.  
  657.    Open a new adjacent buffer for a tag, using the word under the cursor. If 
  658.    failling, the macros prompts for a tag. Using filename-completion will end 
  659.    the input and searches the first tag, beginning with the given string! 
  660.  
  661.    Tries quit-unchanged-to-other-buffer-ref to reduce the number of buffers. 
  662.  
  663.    < A > Tags
  664.    < B > quit-unchanged-to-other-buffer
  665.  
  666.  
  667.    find-or-enter-and-go-tags-adjacent-buffer calls the hooks 
  668.    begin-prompt-macro and end-prompt-macro, so they have to be defined here, 
  669.    if you need them! 
  670. @reference-end
  671. @use(U-C-25)
  672. @use(U-C-29)
  673. @use(ref-viewer-1-2-USED)
  674. @use(ref-viewer-1-4-USED)
  675. @fi
  676. @fi
  677. @fi
  678. @fi
  679. @if-using ( complete set-tf-ref in-tf-ref o-tf-ref ao-tf-ref )
  680. @if-using ( complete set-tf-ref in-tf-ref o-tf-ref ao-tf-ref )
  681. @if-using(REF-TREE)
  682. @reference-begin-class 12
  683.    < F > handling tags file
  684. @reference-end
  685. @reference-begin-class 30
  686.      handling tags file  
  687.     -------------------- 
  688.  
  689. @reference-end
  690. @use(U-C-12)
  691. @use(U-C-30)
  692. @fi
  693. @if-using ( set-tf-ref )
  694. @if-using(REF-TREE)
  695. @reference-begin-class 30
  696.    < A > set-user-tag
  697. @reference-end
  698. @reference-begin-class 31
  699.      set-user-tag  
  700.     -------------- 
  701.  
  702.    Don't use the default tags-file, but define your own. You can control the 
  703.    first tags file by other funtions, setting the history tags-file to the 
  704.    correct filename. This history will be used, if OCL variable 
  705.    tags-user-tags-file is not set to false=0! 
  706. @reference-end
  707. @use(U-C-30)
  708. @use(U-C-31)
  709. @use(ref-viewer-1-0-USED)
  710. @fi
  711. @fi
  712. @if-using ( in-tf-ref )
  713. @if-using(REF-TREE)
  714. @reference-begin-class 30
  715.    < B > insert-tags-file
  716. @reference-end
  717. @reference-begin-class 32
  718.      insert-tags-file  
  719.     ------------------ 
  720.  
  721.    Like insert-file, but does not prompt for a filename. 
  722. @reference-end
  723. @use(U-C-30)
  724. @use(U-C-32)
  725. @use(ref-viewer-1-0-USED)
  726. @fi
  727. @fi
  728. @if-using ( o-tf-ref )
  729. @if-using(REF-TREE)
  730. @reference-begin-class 30
  731.    < C > open-buffer-tags-file
  732. @reference-end
  733. @reference-begin-class 33
  734.      open-buffer-tags-file  
  735.     ----------------------- 
  736.  
  737.    Like open-buffer, but does not prompt for a filename. If no tags file can 
  738.    be reached, the command will be ignored. 
  739. @reference-end
  740. @use(U-C-30)
  741. @use(U-C-33)
  742. @use(ref-viewer-1-0-USED)
  743. @fi
  744. @fi
  745. @if-using ( ao-tf-ref )
  746. @if-using(REF-TREE)
  747. @reference-begin-class 30
  748.    < D > open-adjacent-buffer-tags-file
  749. @reference-end
  750. @reference-begin-class 34
  751.      open-adjacent-buffer-tags-file  
  752.     -------------------------------- 
  753.  
  754.    Like open-adjacent-buffer, but does not prompt for a filename. If no tags 
  755.    file can be reached, the command will be ignored. 
  756. @reference-end
  757. @use(U-C-30)
  758. @use(U-C-34)
  759. @use(ref-viewer-1-0-USED)
  760. @use(ref-viewer-1-4-USED)
  761. @fi
  762. @fi
  763. @fi
  764. @fi
  765. @if-using ( complete tag-completion )
  766. @if-using(REF-TREE)
  767. @reference-begin-class 12
  768.    < G > tag-completion
  769. @reference-end
  770. @reference-begin-class 35
  771.      tag-completion  
  772.     ---------------- 
  773.  
  774.    Similar to origamis filename-completion. This function looks only at the 
  775.    tag names. You may add your own symbols for completion. These entries may 
  776.    be lines containing only the completion string! 
  777.  
  778.    This function can not be used inside prompts! 
  779. @reference-end
  780. @use(U-C-12)
  781. @use(U-C-35)
  782. @use(ref-viewer-1-0-USED)
  783. @use(ref-viewer-1-7-USED)
  784. @fi
  785. @fi
  786. @fi
  787. @if-using ( complete )
  788. @if-using(REF-TREE)
  789. @reference-begin-class 1
  790.    < E > Hooks
  791. @reference-end
  792. @reference-begin-class 36
  793.      Hooks  
  794.     ------- 
  795.  
  796. @reference-end
  797. @use(U-C-1)
  798. @use(U-C-36)
  799. @fi
  800. @if-using ( complete )
  801. @if-using(REF-TREE)
  802. @reference-begin-class 36
  803.    The libary defines a macro `abort-hook-add' and a OCL tag ABORT-HOOK-ADD. 
  804.    This macro should be added to your abort-macro! If needed, an existing 
  805.    macro `abort-hook-add' will be integrated! 
  806.  
  807.    The function `set-user-tags-file' can be simulated, by changing the value 
  808.    of history `tags-file' and setting variable `tags-user-tags-file' to 
  809.    non-zero. If `tags-user-tags-file' is zero, the default list is used. 
  810. @reference-end
  811. @use(U-C-36)
  812. @use(ref-viewer-1-0-USED)
  813. @use(ref-viewer-1-5-USED)
  814. @fi
  815. @fi
  816. @fi
  817. @if-using(REF-TREE)
  818. @reference-begin-class 37
  819.                              sokoban-reference-file  
  820.                             ------------------------ 
  821.  
  822. @reference-end
  823. @use(U-C-37)
  824. @fi
  825. @if-using ( complete )
  826. @if-using(REF-TREE)
  827. @reference-begin-class 37
  828.    < A > Description
  829. @reference-end
  830. @reference-begin-class 38
  831.      Description  
  832.     ------------- 
  833.  
  834. @reference-end
  835. @use(U-C-37)
  836. @use(U-C-38)
  837. @fi
  838. @if-using ( complete )
  839. @if-using(REF-TREE)
  840. @reference-begin-class 38
  841.    This library defines a function for playing the well known game `Sokoban'. 
  842.    Therefor the file `~/.orisokoban' is used to store the game boards. The 
  843.    file will be generated automatically with language Inmos, to prevent 
  844.    problems with different fold marks. Each level is stored in a fold, using 
  845.    the following coding: 
  846.  
  847.    #         wall 
  848.    .         base 
  849.    $         stone 
  850.    *         stone on base 
  851.    @         cursor 
  852.    +         cursor on base 
  853.  
  854.  
  855.    The library defines a own keyboard. So it can only be used for bindings 
  856.    with multiple modes. The mode is named `sokoban-kbd'. The functions 
  857.  
  858.       soko-go-or-push-up, soko-run-or-push-up, soko-run-up 
  859.       soko-go-or-push-down, soko-run-or-push-down, soko-run-down 
  860.       soko-go-or-push-left, soko-run-or-push-left, soko-run-left 
  861.       soko-go-or-push-right, soko-run-or-push-right, soko-run-right 
  862.  
  863.  
  864.    are not undeclared, so they can be bound to your cursor keys. This library 
  865.    uses only the vi based bindings (hjkl). 
  866.  
  867.    You have to define a function `SOKOBAN-RESET-KBD', which resets the 
  868.    keytables to your default table. 
  869. @reference-end
  870. @use(U-C-38)
  871. @use(ref-viewer-1-0-USED)
  872. @fi
  873. @fi
  874. @fi
  875. @if-using ( complete sokoban-call-ref )
  876. @if-using(REF-TREE)
  877. @reference-begin-class 37
  878.    < B > Functions and macros
  879. @reference-end
  880. @reference-begin-class 39
  881.      Functions and macros  
  882.     ---------------------- 
  883.  
  884. @reference-end
  885. @use(U-C-37)
  886. @use(U-C-39)
  887. @fi
  888. @if-using ( complete sokoban-call-ref )
  889. @if-using(REF-TREE)
  890. @reference-begin-class 39
  891.    < A > sokoban
  892. @reference-end
  893. @reference-begin-class 40
  894.      sokoban  
  895.     --------- 
  896.  
  897.    You can play the well known game. You have to push the pakets to the 
  898.    bases. Bases are marked with `.'. Pakets are marked with `$', or `S' on 
  899.    bases. Running or pushing through walls (`#') is not possible. 
  900.  
  901.  
  902.      +--------------------+-----+--------------------------------------+
  903.      | Function           | Key | Comment                              |
  904.      +--------------------+-----+--------------------------------------+
  905.      | go-or-push-up      | k   |                                      |
  906.      | run-or-push-up     | K   | repeat and stop at wall              |
  907.      | run-up             | C-K | repeat and stop at wall or paket     |
  908.      | go-or-push-down    | j   |                                      |
  909.      | run-or-push-down   | J   | repeat and stop at wall              |
  910.      | run-down           | C-J | repeat and stop at wall or paket     |
  911.      | go-or-push-left    | h   |                                      |
  912.      | run-or-push-left   | H   | repeat and stop at wall              |
  913.      | run-left           | C-H | repeat and stop at wall or paket     |
  914.      | go-or-push-right   | l   |                                      |
  915.      | run-or-push-right  | L   | repeat and stop at wall              |
  916.      | run-right          | C-L | repeat and stop at wall or paket     |
  917.      | undo-last-move     | u   | if repeated, only the last one       |
  918.      |                    |     |                                      |
  919.      | next-level         | +   | level has not to be solved           |
  920.      | previous-level     | -   |                                      |
  921.      | save               | s   | not over different editing sessions  |
  922.      | reset              | r   | to last save or start, if no save    |
  923.      | restart-level      | R   | to start                             |
  924.      |                    |     |                                      |
  925.      | quit               | q   |                                      |
  926.      | describe-bindings  | ?   |                                      |
  927.      +--------------------+-----+--------------------------------------+
  928.  
  929.  
  930.    Starting a level calls save automatically! 
  931. @reference-end
  932. @use(U-C-39)
  933. @use(U-C-40)
  934. @use(ref-viewer-1-0-USED)
  935. @use(ref-viewer-1-1-USED)
  936. @fi
  937. @fi
  938. @fi
  939. @if-using ( complete )
  940. @if-using(REF-TREE)
  941. @reference-begin-class 37
  942.    < C > Hooks
  943. @reference-end
  944. @reference-begin-class 41
  945.      Hooks  
  946.     ------- 
  947.  
  948. @reference-end
  949. @use(U-C-37)
  950. @use(U-C-41)
  951. @fi
  952. @if-using ( complete )
  953. @if-using(REF-TREE)
  954. @reference-begin-class 41
  955.    The libary defines a macro `abort-hook-add' and a OCL tag ABORT-HOOK-ADD. 
  956.    This macro should be added to your abort-macro! If needed, an existing 
  957.    macro `abort-hook-add' will be integrated! 
  958.  
  959.    The libary functions are marked as demand-loading. 
  960.  
  961.    If you do not wnt to use the default file `~/.orisokoban', define the tag 
  962.    and function SOKOBAN-FILE. 
  963. @reference-end
  964. @use(U-C-41)
  965. @use(ref-viewer-1-0-USED)
  966. @use(ref-viewer-1-3-USED)
  967. @fi
  968. @fi
  969. @fi
  970. @if-using(REF-TREE)
  971. @reference-begin-class 42
  972.                               CommonUsedReferences  
  973.                              ---------------------- 
  974.  
  975. @reference-end
  976. @use(U-C-42)
  977. @fi
  978. @if-using ( regexp-reference )
  979. @if-using(REF-TREE)
  980. @reference-begin-class 42
  981.    < A > Origami Regular Expressions
  982. @reference-end
  983. @reference-begin-class 43
  984.      Origami Regular Expressions  
  985.     ----------------------------- 
  986.  
  987.    Origami supports regular expression search and replace. The syntax widely 
  988.    conforms POSIX extended or basic regular expressions. 
  989.  
  990.    < A > Character Match
  991. @reference-end
  992. @reference-begin-class 44
  993.      Character Match  
  994.     ----------------- 
  995.  
  996.  
  997.    +------------+------------+--------------------------------------------+
  998.    | Basic      | Extended   | Matches                                    |
  999.    +------------+------------+--------------------------------------------+
  1000.    | <char>     | <char>     | <char>, if not a special character         |
  1001.    | \<char>    | \<char>    | <char>, if a special character             |
  1002.    | .          | .          | any character                              |
  1003.    | ^          | ^          | start of line, if at begin of exp.         |
  1004.    | $          | $          | end of line, if at end of exp.             |
  1005.    | [<class>]  | [<class>]  | any char in <class>                        |
  1006.    | [^<class>] | [^<class>] | any char not in <class>                    |
  1007.    |            |            | <class> is a list of                       |
  1008.    |            |            | 1) <char>                                  |
  1009.    |            |            | 2) <char>-<char>                           |
  1010.    |            |            | 3) [:<set>:] (*)                           |
  1011.    +------------+------------+--------------------------------------------+
  1012.    (*)       <set> can be `alpha', `upper', `lower', `digit', `xdigit', 
  1013.              `alnum', `blank', `space', `print', `cntrl', `graph' or `punct'. 
  1014.              See your local ctype documentation for detailed information. 
  1015. @reference-end
  1016. @reference-begin-class 43
  1017.    < B > Complex Expressions
  1018. @reference-end
  1019. @reference-begin-class 45
  1020.      Complex Expressions  
  1021.     --------------------- 
  1022.  
  1023.  
  1024.    +------------+------------+--------------------------------------------+
  1025.    | Basic      | Extended   | Matches(*)                                 |
  1026.    +------------+------------+--------------------------------------------+
  1027.    | <e1> <e2>  | <e1> <e2>  | concatenation of strings <s1> <s2>         |
  1028.    | \(<e>\)    | (<e>)      | <s>, used for grouping and \x in replaceme |
  1029.    | <e1>\|<e2> | <e1>|<e2>  | <s1> or <s2>                               |
  1030.    | <e>\+      | <e>+       | one or more strings, matching <e>          |
  1031.    | <e>\?      | <e>?       | zero on one string, matching <e>           |
  1032.    | <e>*       | <e>*       | zero or more strings, matching <e>         |
  1033.    | <e>\{<n>\} | <e>{<n>}   | <n> strings, matching <e>                  |
  1034.    | <e>\{<n>,< | <e>{<n>,<m | <n> to <m> strings, matching <e>           |
  1035.    | \!<e>      | !<e>       | if at begin of line:                       |
  1036.    |            |            | next line, not matching <e>                |
  1037.    +------------+------------+--------------------------------------------+
  1038.    (*)       <e>,<e1> and <e2> are regular expressions and strings <s>,<s1> 
  1039.              and <s2> are strings, matching the corresponding expressions. 
  1040.              <n> and <m> are integers. 
  1041. @reference-end
  1042. @reference-begin-class 43
  1043.    < C > Replace Expressions
  1044. @reference-end
  1045. @reference-begin-class 46
  1046.      Replace Expressions  
  1047.     --------------------- 
  1048.  
  1049.    In regular expression replace, the following special expressions are 
  1050.    allowed (any character, not used for special purpose, can be used for 
  1051.    itself): 
  1052.  
  1053.  
  1054.     +------------+------------------------------------------------------+
  1055.     | Expression | Meaning(*)                                           |
  1056.     +------------+------------------------------------------------------+
  1057.     | \<x>       | the <x>-th group in the search pattern               |
  1058.     | \u<x>      | the <x>-th group, all characters uppercase           |
  1059.     | \l<x>      | the <x>-th group, all characters lowercase           |
  1060.     | \{<x><e>}  | <s> length limited by length of <x>-th group (**)    |
  1061.     | \?<x><e>}  | <s>, if the <x>-th group matches                     |
  1062.     | \!<x><e>}  | <s>, if the <x>-th group does not match              |
  1063.     | \}         | }                                                    |
  1064.     | \\         | \                                                    |
  1065.     +------------+------------------------------------------------------+
  1066.    (*)       <x> can be 0 .. 9 and g10 .. g16. The <x>-th group is the part 
  1067.              of the matching string, matched by the part of the regular 
  1068.              expressions in the <x>-th pair of (). 0 is used for the complete 
  1069.              string. <e> is a replace expression and <s> the corresponding 
  1070.              string. 
  1071.    (**)      For short strings <s>, the last character will be used for 
  1072.              padding. Use `\0' as last character to prevent padding. 
  1073. @reference-end
  1074. @use(U-C-42)
  1075. @use(U-C-43)
  1076. @use(U-C-44)
  1077. @use(ref-viewer-1-0-USED)
  1078. @use(U-C-45)
  1079. @use(U-C-46)
  1080. @use(ref-viewer-1-3-USED)
  1081. @fi
  1082. @fi
  1083. @if-using ( cmd-reference )
  1084. @if-using(REF-TREE)
  1085. @reference-begin-class 42
  1086.    < B > Origami Command Line Options
  1087. @reference-end
  1088. @reference-begin-class 47
  1089.      Origami Command Line Options  
  1090.     ------------------------------ 
  1091.  
  1092.  
  1093.    +--------------+------------------------------------------------------+
  1094.    | Option       | Function                                             |
  1095.    +--------------+------------------------------------------------------+
  1096.    | -a delay     | specify time between auto-saves                      |
  1097.    |              | (1<=delay<=60,default=8)                             |
  1098.    | -A           | open the list of files, instead of first file        |
  1099.    | -C           | disable copyright message                            |
  1100.    | -D           | dump on crash                                        |
  1101.    | -d dspmode   | specify display mode (*)                             |
  1102.    | -e           | echoing keyboard input on                            |
  1103.    | -h           | show available command line arguments                |
  1104.    | -i           | show ctrl-chars inverse                              |
  1105.    | -k name      | specify other rc-file                                |
  1106.    | -K state     | choose keypad mode                                   |
  1107.    |              | N -> numerical                                       |
  1108.    |              | A -> application                                     |
  1109.    | -l number    | first line in file                                   |
  1110.    | -m name      | marks for fold-display                               |
  1111.    | -M marks     | like -m, but give strings directly                   |
  1112.    | -n           | load files without fold-parsing                      |
  1113.    | -N lines     | specify size of virtual line handling buffer         |
  1114.    | -o           | start in overwrite-mode                              |
  1115.    | -O value     | pass data to OCL                                     |
  1116.    | -p           | use c-preprocessor-mode                              |
  1117.    | -P           | do not open control terminal, if stdin isn't         |
  1118.    | -R rcpath    | pathlist for rc,help and msg-file                    |
  1119.    | -S cmd       | use cmd as shell                                     |
  1120.    |              | pipe-commands are disabled                           |
  1121.    | -t width     | specify the size of tabs                             |
  1122.    | -T name      | specify window name, after exiting Origami           |
  1123.    | -v           | start in view-mode                                   |
  1124.    | -V           | verbose-mode                                         |
  1125.    | -W name      | display name in statusline                           |
  1126.    | -X string    | specify OS-dependent stuff                           |
  1127.    | -Z           | disable suspend-origami                              |
  1128.    +--------------+------------------------------------------------------+
  1129.  
  1130.  
  1131.    *         dspmode is a sequence of: 
  1132.  
  1133.               +-------+--------------------------------------------------+
  1134.               | Code  | Meaning                                          |
  1135.               +-------+--------------------------------------------------+
  1136.               | o     | octal display (C-?k: \177)                       |
  1137.               | d     | decimal display (C-?: \d127)                     |
  1138.               | h     | hexadecimal display (C-?: \7F)                   |
  1139.               | m     | mark control characters                          |
  1140.               | i     | inverse control characters                       |
  1141.               | n     | numbered control characters                      |
  1142.               | p     | normal characters display                        |
  1143.               | 8     | numbered display of 8-bit characters             |
  1144.               | a     | numbered character display                       |
  1145.               | t tab | specify tab width (tab<=0: tab like control)     |
  1146.               +-------+--------------------------------------------------+
  1147. @reference-end
  1148. @use(U-C-42)
  1149. @use(U-C-47)
  1150. @use(ref-viewer-1-0-USED)
  1151. @use(ref-viewer-1-2-USED)
  1152. @fi
  1153. @fi
  1154. @if-using(REF-TREE)
  1155. @reference-begin-class 48
  1156.                     EMacs - Reference Card (Michael Haardt)  
  1157.                    ----------------------------------------- 
  1158.  
  1159.              This is the reference file for EMacs, a binding for 
  1160.              the folding-editor Origami. 
  1161.  
  1162.    < A > EMacs Command Line Options
  1163. @reference-end
  1164. @reference-begin-class 49
  1165.      EMacs Command Line Options  
  1166.     ---------------------------- 
  1167.  
  1168.    You can use the following commad line options, to control the modes of 
  1169.    EMacs: 
  1170.  
  1171.  
  1172.     +------------+------------+------------------------------------------+
  1173.     | Off        | On         | Mode                                     |
  1174.     +------------+------------+------------------------------------------+
  1175.     | -Onotime   | -Otime     | time display in the statusline           |
  1176.     | -Onoposi   | -Oposi     | position display in the statusline       |
  1177.     | -Onofull   | -Ofull     | full shifting display                    |
  1178.     | -Onoai     | -Oai       | autoindent                               |
  1179.     | -Onomagic  | -Omagic    | regular exprsession search               |
  1180.     | -Onomagic  | -Oxmagic   | extended regular expression search       |
  1181.     | -Onoc      | -Oc        | c-mode                                   |
  1182.     +------------+------------+------------------------------------------+
  1183.  
  1184.  
  1185.    You can also use the option '-Odefault' to use the default values: 
  1186.  
  1187.    -Otime -Onoposi -Onofull -Oai -Onomagic -Onoc 
  1188. @reference-end
  1189. @reference-begin-class 48
  1190.    < B > Origami Command Line Options
  1191.    < C > Origami Regular Expressions
  1192.    < D > Messages, errors and prompts
  1193. @reference-end
  1194. @reference-begin-class 50
  1195.      Messages, errors and prompts  
  1196.     ------------------------------ 
  1197.  
  1198.    Sometimes EMacs may want to tell you something, like when you did 
  1199.    something which EMacs does not allow. If it is something simple, such as 
  1200.    typing a control key sequence which is not associated with any command, 
  1201.    EMacs will just ignore it. Otherwise, it will also display an informative 
  1202.    error message at the bottom of the screen. Simple messages are displayed 
  1203.    in brackets, prompts will appear without brackets and end with a question 
  1204.    mark. 
  1205.  
  1206.    When starting using verbose mode, EMacs will be less ignorant and tell you 
  1207.    more. Look under command line switches and/or modes on how to use modes. 
  1208. @reference-end
  1209. @reference-begin-class 48
  1210.    < E > The status line and the message line
  1211. @reference-end
  1212. @reference-begin-class 51
  1213.      The status line and the message line  
  1214.     -------------------------------------- 
  1215.  
  1216.    The line immediately above the bottom line is referred to as the "mode 
  1217.    line". The mode line looks something like 
  1218.  
  1219.     * EMacs 1.6.79 (None)  teach-emacs 
  1220.  
  1221.  
  1222.    This is a very useful "information" line. 
  1223.  
  1224.    asterisk (star) 
  1225.              indicates that changes have been made to the file. Immediately 
  1226.              after opening or saving a file, there is no star. 
  1227.    name ("EMacs" in this case) 
  1228.              shows the name of your compiled keybinding, which runs on top of 
  1229.              the Origami interpreter. 
  1230.    words inside the parentheses 
  1231.              indicate the "modes" EMacs is currently in. 
  1232.    filename ("teach-emacs" in this case) 
  1233.              is the name of the file you are currently editing. 
  1234.  
  1235.  
  1236.    If you use more than one window, each window will have its own mode line. 
  1237. @reference-end
  1238. @reference-begin-class 48
  1239.    < F > Used notation of input
  1240. @reference-end
  1241. @reference-begin-class 52
  1242.      Used notation of input  
  1243.     ------------------------ 
  1244.  
  1245.    In the following sections, the notation below is used to describe which 
  1246.    commands are bound to which keys or sequences of keys. 
  1247.  
  1248.    C-<chr>   Hold the CONTROL key while pressing the character <chr>. Thus, 
  1249.              C-F would be: hold the CONTROL key and press F. Some people may 
  1250.              be used to see ^F, here it is C-F. 
  1251.    M-<chr>   If you have no Meta key, then press the ESCAPE key and release 
  1252.              it, then press the character <chr>. Alternatively, if your 
  1253.              keyboard has a meta key, then hold it down while typing <chr>. 
  1254.    M-C-<chr> If you have no Meta key, then press the ESCAPE key and release 
  1255.              it, then hold the CONTROL key while pressing the character 
  1256.              <chr>. Otherwise, hold down Meta and Control while typing <chr>. 
  1257. @reference-end
  1258. @reference-begin-class 48
  1259.    < G > Bound keys and key sequences
  1260. @reference-end
  1261. @reference-begin-class 53
  1262.      Bound keys and key sequences  
  1263.     ------------------------------ 
  1264.  
  1265.    Each key inserts/overwrites its character at the current cursor position, 
  1266.    unless it is bound to a command, in which case the command will be 
  1267.    started. If the key is start of a key sequence to which a command is 
  1268.    bound, EMacs will wait for the rest of that sequence and show what was 
  1269.    typed so far in the message line. Killing text means that the text will be 
  1270.    erased from the buffer and appended to the kill buffer whereas deleting 
  1271.    text means just erasing it, although a limited undo function is available. 
  1272.  
  1273.    < A > The general abort command
  1274. @reference-end
  1275. @reference-begin-class 54
  1276.      The general abort command  
  1277.     --------------------------- 
  1278.  
  1279.    C-G       The EMacs command used to abort any command, no matter if it 
  1280.              requests input or not, is C-G. For example, you can used C-G to 
  1281.              discard a numeric argument, at the beginning of a command that 
  1282.              you don't want to finish, to abort loading big files and to 
  1283.              abort running macros. 
  1284. @reference-end
  1285. @reference-begin-class 53
  1286.    < B > Cursor motion
  1287. @reference-end
  1288. @reference-begin-class 55
  1289.      Cursor motion  
  1290.     --------------- 
  1291.  
  1292.    < A > Basic cursor control (up, down, left, right)
  1293. @reference-end
  1294. @reference-begin-class 56
  1295.      Basic cursor control (up, down, left, right)  
  1296.     ---------------------------------------------- 
  1297.  
  1298.    Not the best, but the most basic way to move the cursor is to use the 
  1299.    commands previous-line, backward-character, forward-character and 
  1300.    next-line. Here, in a more graphical form, are the commands: 
  1301.  
  1302.                         Previous line, C-P 
  1303.                               : 
  1304.    Backward, C-B .. Current cursor position .. Forward, C-F 
  1305.                               : 
  1306.                         Next line, C-N 
  1307.  
  1308.  
  1309.    You'll probably find it easy to think of these by letter: P for previous, 
  1310.    N for next, B for backward and F for forward. When you go off the top or 
  1311.    bottom of the screen, the text beyond the edge is shifted onto the screen 
  1312.    so that your instructions can be carried out while keeping the cursor on 
  1313.    the screen. If your terminal is supported, then the cursor keys will work 
  1314.    as well. 
  1315. @reference-end
  1316. @reference-begin-class 55
  1317.    < B > Move cursor backward/forward one word
  1318. @reference-end
  1319. @reference-begin-class 57
  1320.      Move cursor backward/forward one word  
  1321.     --------------------------------------- 
  1322.  
  1323.    M-b       backward-word, moves the cursor back one word. 
  1324.    M-f       backward-word, moves the cursor forward one word. 
  1325. @reference-end
  1326. @reference-begin-class 55
  1327.    < C > Move cursor backward/forward one sentence
  1328. @reference-end
  1329. @reference-begin-class 58
  1330.      Move cursor backward/forward one sentence  
  1331.     ------------------------------------------- 
  1332.  
  1333.    The end of a sentence in EMacs means a line with a period at its end or a 
  1334.    period followed by two spaces. 
  1335.  
  1336.    M-B       backward-sentence. Moves the cursor to the beginning of the last 
  1337.              sentence. 
  1338.    M-F       forward-sentence. Moves the cursor to the beginning of the next 
  1339.              sentence. 
  1340. @reference-end
  1341. @reference-begin-class 55
  1342.    < D > Move cursor to the previous/next paragraph
  1343. @reference-end
  1344. @reference-begin-class 59
  1345.      Move cursor to the previous/next paragraph  
  1346.     -------------------------------------------- 
  1347.  
  1348.    A paragraph in EMacs is text without blank lines and without a period in 
  1349.    the first column. 
  1350.  
  1351.    M-p       previous-paragraph, moves the cursor to the previous paragraph. 
  1352.    M-n       next-paragraph, moves the cursor to the next paragraph. 
  1353. @reference-end
  1354. @reference-begin-class 55
  1355.    < E > Move cursor to the previous/next page
  1356. @reference-end
  1357. @reference-begin-class 60
  1358.      Move cursor to the previous/next page  
  1359.     --------------------------------------- 
  1360.  
  1361.    M-v       previous-page, move one page back. If your terminal is 
  1362.              supported, then the NextPage key will also work. 
  1363.    C-V       next-page, move one page forward. If your terminal is supported, 
  1364.              then the PreviousPage key will also work. 
  1365. @reference-end
  1366. @reference-begin-class 55
  1367.    < F > Move cursor to the beginning/end of a line
  1368. @reference-end
  1369. @reference-begin-class 61
  1370.      Move cursor to the beginning/end of a line  
  1371.     -------------------------------------------- 
  1372.  
  1373.    C-A       beginning-of-line, move to the beginning of line. If your 
  1374.              terminal is supported, the begin key will also work. 
  1375.    C-E       end-of-line, move to the end of line. If your terminal is 
  1376.              supported, the end key will also work. 
  1377. @reference-end
  1378. @reference-begin-class 55
  1379.    < G > Move cursor to the beginning/end of a fold
  1380. @reference-end
  1381. @reference-begin-class 62
  1382.      Move cursor to the beginning/end of a fold  
  1383.     -------------------------------------------- 
  1384.  
  1385.    M-<       beginning-of-fold, move to the beginning of the entered fold. If 
  1386.              your terminal is supported, the home key will also work. 
  1387.    M->       end-of-fold, move to the end of the entered fold. 
  1388. @reference-end
  1389. @reference-begin-class 55
  1390.    < H > Move cursor to line with a specific number
  1391. @reference-end
  1392. @reference-begin-class 63
  1393.      Move cursor to line with a specific number  
  1394.     -------------------------------------------- 
  1395.  
  1396.    M-g       go-to-line, moves the cursor to the specified line in an entered 
  1397.              fold. With a numeric argument, Origami jumps to that line, 
  1398.              otherwise a prompt asking for it will be issued. 
  1399. @reference-end
  1400. @reference-begin-class 55
  1401.    < I > Move cursor to matching paren, bracket or brace
  1402. @reference-end
  1403. @reference-begin-class 64
  1404.      Move cursor to matching paren, bracket or brace  
  1405.     ------------------------------------------------- 
  1406.  
  1407.    M-#       goto-matching-fence, move cursor to matching paren, bracket or 
  1408.              brace. If the cursor stands not on one of the above mentioned 
  1409.              fences, EMacs tries to find one of the following more complex 
  1410.              structures (Skip1 -> Skip2 [ -> Skip3 ] -> Skip1 .. ): 
  1411.  
  1412.                  +----------+------------+------------+------------+
  1413.                  | Language | Skip1      | Skip2      | Skip3      |
  1414.                  +----------+------------+------------+------------+
  1415.                  | all      | #ifdef     | #else      | #endif     |
  1416.                  | all      | #if        | #else      | #endif     |
  1417.                  | OCL      | @if-using  | @fi        |            |
  1418.                  +----------+------------+------------+------------+
  1419. @reference-end
  1420. @reference-begin-class 55
  1421.    < J > Move cursor in and out of folds
  1422. @reference-end
  1423. @reference-begin-class 65
  1424.      Move cursor in and out of folds  
  1425.     --------------------------------- 
  1426.  
  1427.    C-O       open-fold, opens the fold under the cursor. If your terminal is 
  1428.              supported, then the open key will work as well. 
  1429.    C-C       close-fold, closes the current fold and folds inside it. If your 
  1430.              terminal is supported, then the close key will work as well. 
  1431.    M-C-O     enter-fold, enters the fold under the cursor. If the line is not 
  1432.              a fold, Origami tries to follow the given include statement or 
  1433.              prompts for a filename. The environement variable 
  1434.              `ORIGAMILIBPATH' may contain a `:' separated list of directories 
  1435.              (default is `/usr/include'). 
  1436.    M-C-C     exit-fold, exits the current fold. 
  1437. @reference-end
  1438. @reference-begin-class 53
  1439.    < C > Editing
  1440. @reference-end
  1441. @reference-begin-class 66
  1442.      Editing  
  1443.     --------- 
  1444.  
  1445.    < A > Creating a new line
  1446. @reference-end
  1447. @reference-begin-class 67
  1448.      Creating a new line  
  1449.     --------------------- 
  1450.  
  1451.    C-M       newline-and-indent, splits the line at the cursor position. If 
  1452.              mode 
  1453.    C-J       Autoindent is active, then the new line is indented as the 
  1454.              previous line. 
  1455. @reference-end
  1456. @reference-begin-class 66
  1457.    < B > Deleting characters
  1458. @reference-end
  1459. @reference-begin-class 68
  1460.      Deleting characters  
  1461.     --------------------- 
  1462.  
  1463.    C-H       delete-previous-character, deletes the character left to the 
  1464.              cursor. Most backspace keys also send C-H. 
  1465.    C-D       delete-character, deletes the character under the cursor. Most 
  1466.    C-?       delete keys also send a C-?. 
  1467. @reference-end
  1468. @reference-begin-class 66
  1469.    < C > Exchanging characters
  1470. @reference-end
  1471. @reference-begin-class 69
  1472.      Exchanging characters  
  1473.     ----------------------- 
  1474.  
  1475.    C-T       transpose-characters, exchanges the character under the cursor 
  1476.              with the character left from the cursor, then moves the cursor 
  1477.              forward one character. 
  1478. @reference-end
  1479. @reference-begin-class 66
  1480.    < D > Deleting words
  1481. @reference-end
  1482. @reference-begin-class 70
  1483.      Deleting words  
  1484.     ---------------- 
  1485.  
  1486.    M-C-H     delete-word-backward, deletes word backwards from cursor 
  1487.              position. 
  1488.    M-C-D     delete-word, deletes word under cursor position. 
  1489. @reference-end
  1490. @reference-begin-class 66
  1491.    < E > Changing capitalization of words
  1492. @reference-end
  1493. @reference-begin-class 71
  1494.      Changing capitalization of words  
  1495.     ---------------------------------- 
  1496.  
  1497.    M-c       case-word-capitalize, capitalizes the word starting at cursor 
  1498.              position and moves the cursor forward one word. 
  1499.    M-u       case-word-upper, changes the word to upper case starting at 
  1500.              cursor position and moves the cursor forward one word. 
  1501.    M-l       case-word-lower, changes the word to lower case starting at 
  1502.              cursor position and moves the cursor forward one word. 
  1503. @reference-end
  1504. @reference-begin-class 66
  1505.    < F > Killing, deleting, and getting erased text back
  1506. @reference-end
  1507. @reference-begin-class 72
  1508.      Killing, deleting, and getting erased text back  
  1509.     ------------------------------------------------- 
  1510.  
  1511.    C-K       kill-line, kills all text from cursor position to end of line. 
  1512.              If the cursor was already at the end of the line, the newline 
  1513.              character ending the line will be killed, joining the current 
  1514.              line with the next line. 
  1515.  
  1516.  
  1517.    M-C-K  |  delline 
  1518.              delete-line, deleted all text from cursor position to end of 
  1519.              line. If the cursor was already at the end of the line, the 
  1520.              newline character ending the line will be deleted, joining the 
  1521.              current line with the next line. 
  1522.  
  1523.  
  1524.    C-Y       insert-folded-kill-buffer, moves the kill buffer in a fold and 
  1525.              yanks this fold back 
  1526.  
  1527.  
  1528.    C-X C-Y   undo-delete-line, yank the last deleted line back 
  1529. @reference-end
  1530. @reference-begin-class 66
  1531.  
  1532.  
  1533.    < G > copy-to-kill-buffer
  1534. @reference-end
  1535. @reference-begin-class 73
  1536.      copy-to-kill-buffer  
  1537.     --------------------- 
  1538.  
  1539.    M-k       copy-to-kill-buffer, appends the line to the kill buffer without 
  1540.              killing it 
  1541. @reference-end
  1542. @reference-begin-class 66
  1543.    < H > unfold-fold
  1544. @reference-end
  1545. @reference-begin-class 74
  1546.      unfold-fold  
  1547.     ------------- 
  1548.  
  1549.    C-U       unfold-fold, removes the fold marks of the fold under the cursor 
  1550. @reference-end
  1551. @reference-begin-class 66
  1552.    < I > auto-header
  1553. @reference-end
  1554. @reference-begin-class 75
  1555.      auto-header  
  1556.     ------------- 
  1557.  
  1558.    C-X C-H   auto-header, copies the first in of the fold under the cursor to 
  1559.              the fold header 
  1560. @reference-end
  1561. @reference-begin-class 66
  1562.    < J > toggle-file-fold
  1563. @reference-end
  1564. @reference-begin-class 76
  1565.      toggle-file-fold  
  1566.     ------------------ 
  1567.  
  1568.    C-X C-F   toggle-file-fold, toggles between a fold and a file-fold 
  1569. @reference-end
  1570. @reference-begin-class 66
  1571.    < M > toggle-attach-file-to-fold
  1572. @reference-end
  1573. @reference-begin-class 77
  1574.      toggle-attach-file-to-fold  
  1575.     ---------------------------- 
  1576.  
  1577.    C-X C-A   toggle-attach-file-to-fold, attaches a file to a fold to create 
  1578.              a file-fold for an already existing file, or unlinks the file 
  1579.              from the fold 
  1580. @reference-end
  1581. @reference-begin-class 53
  1582.    < D > Regions
  1583. @reference-end
  1584. @reference-begin-class 78
  1585.      Regions  
  1586.     --------- 
  1587.  
  1588.    Regions in EMacs are parts of the buffer, one end marked by an invisible 
  1589.    mark, the other by the cursor. The region includes the beginning position 
  1590.    and excludes the ending position. Regions have to respect the fold 
  1591.    structure. 
  1592.  
  1593.    C-@       set-mark, set an invisible mark at the current cursor position. 
  1594.              This function is also bound to control-space, because most 
  1595.              keyboards generate the same character on C-@ and control-space. 
  1596.    C-X C-X   change-mark-and-position, set the invisible mark at the cursor 
  1597.              position and move the cursor to the previos location of the 
  1598.              mark. 
  1599.    C-X x     highlight-region, show the marked region highlighted. A set 
  1600.              argument will enhance the display time. 
  1601.    M-C-W     delete-region, delete a region. This can be undone by 
  1602.              undo-delete-line. 
  1603.    C-W       kill-region, move the region to the kill buffer. 
  1604.    M-w       copy-region, copy the region in the kill buffer. 
  1605.    M-C-@     fold-region, folds the region. 
  1606. @reference-end
  1607. @reference-begin-class 53
  1608.    < E > Search/replace
  1609. @reference-end
  1610. @reference-begin-class 79
  1611.      Search/replace  
  1612.     ---------------- 
  1613.  
  1614.    < A > Search for a string
  1615. @reference-end
  1616. @reference-begin-class 80
  1617.      Search for a string  
  1618.     --------------------- 
  1619.  
  1620.    M-C-S     search-forward, prompts for a string and moves the cursor to the 
  1621.              next occurence of it. 
  1622.    M-C-R     search-reverse, prompts for a string and moves the cursor to the 
  1623.              last occurence of it. 
  1624. @reference-end
  1625. @reference-begin-class 79
  1626.    < B > Incremental search for a string
  1627. @reference-end
  1628. @reference-begin-class 81
  1629.      Incremental search for a string  
  1630.     --------------------------------- 
  1631.  
  1632.    Incremental search allows you to see the result of the search while the 
  1633.    search string is typed/changed. 
  1634.  
  1635.    C-S       incremental-search-forward, switches to incremental search mode 
  1636.              with default direction forward. 
  1637.    C-R       incremental-search-reverse, switches to incremental search mode 
  1638.              with default direction backward. 
  1639.  
  1640.  
  1641.    < A > Functions in incremental search mode
  1642. @reference-end
  1643. @reference-begin-class 82
  1644.      Functions in incremental search mode  
  1645.     -------------------------------------- 
  1646.  
  1647.    During incremental search, you can use the following commands: 
  1648.  
  1649.    <chr>     Append the character to the search pattern and search in current 
  1650.              search direction. 
  1651.    C-S       Move the cursor to the next occurence of the search string and 
  1652.              switch to search direction forward. 
  1653.    C-R       Move to the previous occurence and switch to searching backward. 
  1654.    C-P       Go back in search history. 
  1655.    C-N       Go forward in search history. 
  1656.    C-M  |  C-J 
  1657.              exit incremental search, leave the cursor where it is. 
  1658.    C-H       remove last letter from search pattern. 
  1659.    C-G       aborts incremental search, sets the cursor to where it was 
  1660.              before. 
  1661. @reference-end
  1662. @reference-begin-class 79
  1663.    < C > Search and replace
  1664. @reference-end
  1665. @reference-begin-class 83
  1666.      Search and replace  
  1667.     -------------------- 
  1668.  
  1669.    M-R       replace-string, asks for a search string and a replace string 
  1670.              and replaces all occurences of the search string by the replace 
  1671.              string. 
  1672.    M-R       query-replace-string, asks for a search string and a replace 
  1673.              string and gives the choice to replace the search string by the 
  1674.              replace string at all occurences. During query-replace-string 
  1675.              the following commands are available: 
  1676.  
  1677.              Y         replace and go to next occurence 
  1678.              N         don't replace and go to next occurence 
  1679.              !         replace all further occurences 
  1680.              A         abort 
  1681.              .         replace this occurence and abort after 
  1682. @reference-end
  1683. @reference-begin-class 53
  1684.    < F > Files
  1685. @reference-end
  1686. @reference-begin-class 84
  1687.      Files  
  1688.     ------- 
  1689.  
  1690.    C-X C-I   insert-file, inserts the contents of a file at the current 
  1691.              position into the buffer. 
  1692.    C-X C-S   save-file, writes the buffer back to the edited file. If your 
  1693.              terminal is supported, the save key will also work. 
  1694.    C-X C-W   write-file, writes the buffer to another file. 
  1695.    C-X C-R   read-file, reads another file into the buffer. A set argument 
  1696.              will read the file without parsing. The state of the mode 
  1697.              parsing will not be changed. 
  1698.    C-X C-N   next-file, reads next file from command line argument list into 
  1699.              the buffer. 
  1700.    C-X C-P   previous-file, reads previous file from command line argument 
  1701.              list into the buffer. 
  1702.    M-~       set-file-unchanged, marks the buffer as unchanged. 
  1703. @reference-end
  1704. @reference-begin-class 53
  1705.    < G > Buffers
  1706. @reference-end
  1707. @reference-begin-class 85
  1708.      Buffers  
  1709.     --------- 
  1710.  
  1711.    Origami has a different buffer concept than most other emacs 
  1712.    implementations. Each buffer has its own (and only) window to edit it. 
  1713.    Buffers may not be currently visible, so list-buffers is an important 
  1714.    function if you get lost. 
  1715.  
  1716.    C-X C-B   list-buffers, show a list of all used buffers and offers a menu 
  1717.              for selecting another buffer (return moves you back to the old 
  1718.              position). If your terminal supports it, the select key will 
  1719.              also work. 
  1720.    C-X b     change-buffername, changes the name of the current buffer 
  1721.  
  1722.  
  1723.    < A > Opening and closing buffers
  1724. @reference-end
  1725. @reference-begin-class 86
  1726.      Opening and closing buffers  
  1727.     ----------------------------- 
  1728.  
  1729.    C-X "2    open-buffer, open a second buffer by parting the current window 
  1730.              horizontally. A set argument will read the file without parsing. 
  1731.              The state of the mode parsing will not be changed. 
  1732.    C-X "3    open-adjacent-buffer, open a second buffer by parting the 
  1733.              current window vertically. A set argument will read the file 
  1734.              without parsing. The state of the mode parsing will not be 
  1735.              changed. 
  1736.    C-X "0    exit-buffer, close the current buffer and unify the window with 
  1737.              the window of the previous buffer 
  1738.    C-X @     show a special buffer containing the last messages. 
  1739. @reference-end
  1740. @reference-begin-class 85
  1741.    < B > Changing between buffers
  1742. @reference-end
  1743. @reference-begin-class 87
  1744.      Changing between buffers  
  1745.     -------------------------- 
  1746.  
  1747.    M-C-X p   previous-buffer, go to the previous buffer. 
  1748.    M-C-X n   next-buffer, go to the next buffer. 
  1749.    C-X o     other-buffer, go cyclic to the next buffer. 
  1750.    M-C-X C-P up-buffer, move up one buffer 
  1751.    M-C-X C-N down-buffer, move down one buffer 
  1752.    M-C-X C-B left-buffer, move left one buffer 
  1753.    M-C-X C-F right-buffer, move right one buffer 
  1754. @reference-end
  1755. @reference-begin-class 85
  1756.    < C > Resizing buffers
  1757. @reference-end
  1758. @reference-begin-class 88
  1759.      Resizing buffers  
  1760.     ------------------ 
  1761.  
  1762.    C-X "1    full-size-buffer, extend the size of the current buffer to 
  1763.              screen size 
  1764.    M-C-X ^   grow-buffer, grow current buffer vertically 
  1765.    M-C-X v   shrink-buffer, shrink current buffer vertically 
  1766.    M-C-X <   widen-buffer, grow current buffer horizontally 
  1767.    M-C-X >   narrow-buffer, shrink current buffer horizontally 
  1768. @reference-end
  1769. @reference-begin-class 53
  1770.    < H > Modes
  1771. @reference-end
  1772. @reference-begin-class 89
  1773.      Modes  
  1774.     ------- 
  1775.  
  1776.    Unlike most other Emacs implementations, Origami does not seperate between 
  1777.    major and minor modes. The mode default values can be set using command 
  1778.    line switches: 
  1779.  
  1780.    < A > Origami Command Line Options
  1781. @reference-end
  1782. @reference-begin-class 90
  1783.      Origami Command Line Options  
  1784.     ------------------------------ 
  1785.  
  1786. @reference-end
  1787. @reference-begin-class 89
  1788.    < B > EMacs Command Line Options
  1789.  
  1790.  
  1791.    All modes are related to a buffer, they are set with C-X "m <mode-key> and 
  1792.    deleted with C-X C-M <mode-key>. The following mode-keys are available: 
  1793.  
  1794.    "a        autosave, asks for a time interval and saves the text each time 
  1795.              after this interval expires 
  1796.    "c        c-mode, syntax support for C 
  1797.    "d        show a menu for changing the used character display mode. This 
  1798.              mode also can only be changed, not deleted. 
  1799.    "f        full-shift, moving over the right border of the screen will 
  1800.              shift the whole buffer, not only the current line. 
  1801.    "i        autoindent, new lines will be indented as their predecessor 
  1802.    "l        set-language, sets a new language for fold comments. This mode 
  1803.              can only be changed and not deleted. 
  1804.    "m        basic-regular-expression, search/replace will use regular 
  1805.              expressions 
  1806.    "M        extended-regular-expression, search/replace will use extended 
  1807.              expressions. 
  1808.    "n        no-parse, reading files will be done without fold parsing 
  1809.    "o        overwrite, new text overwrites existing text instead of being 
  1810.              inserted 
  1811.    "p        position, always show current position in status line 
  1812.    "t        time, display the time right from the filename 
  1813.    "v        view, text can only be viewd but not changed 
  1814.    "V        If set, EMacs will be more verbose in some situations. 
  1815.    "w        wrap, wraps a word to the next line if neccessary 
  1816.    "#        hash-shifting 
  1817. @reference-end
  1818. @reference-begin-class 53
  1819.    < I > Arguments
  1820. @reference-end
  1821. @reference-begin-class 91
  1822.      Arguments  
  1823.     ----------- 
  1824.  
  1825.    M-<number> 
  1826.              set-argument-<number> (number can be a digit from 0 to 9), set 
  1827.              number as argument for the next executed command. Any following 
  1828.              typed digits will be part of the number. Most commands simply 
  1829.              are executed number times, when prefixed by an argument. 
  1830. @reference-end
  1831. @reference-begin-class 53
  1832.    < J > Shell Commands
  1833. @reference-end
  1834. @reference-begin-class 92
  1835.      Shell Commands  
  1836.     ---------------- 
  1837.  
  1838.    < A > shell
  1839. @reference-end
  1840. @reference-begin-class 93
  1841.      shell  
  1842.     ------- 
  1843.  
  1844.    shift-command  |  C-X "c 
  1845.              shell, starts a sub shell 
  1846. @reference-end
  1847. @reference-begin-class 92
  1848.    < B > shell-command
  1849. @reference-end
  1850. @reference-begin-class 94
  1851.      shell-command  
  1852.     --------------- 
  1853.  
  1854.    command  |  C-X "! 
  1855.              shell-command, starts a sub shell with a given command 
  1856. @reference-end
  1857. @reference-begin-class 92
  1858.    < C > filter-buffer
  1859. @reference-end
  1860. @reference-begin-class 95
  1861.      filter-buffer  
  1862.     --------------- 
  1863.  
  1864.    C-X "|    filter-buffer, first saves current file and then filters it 
  1865.              through the specified filter command. 
  1866. @reference-end
  1867. @reference-begin-class 92
  1868.    < D > pipe-to-command
  1869. @reference-end
  1870. @reference-begin-class 96
  1871.      pipe-to-command  
  1872.     ----------------- 
  1873.  
  1874.    C-X ">    pipe-to-command, feeds the command with the current file as 
  1875.              standard input. 
  1876. @reference-end
  1877. @reference-begin-class 92
  1878.    < E > pipe-from-command
  1879. @reference-end
  1880. @reference-begin-class 97
  1881.      pipe-from-command  
  1882.     ------------------- 
  1883.  
  1884.    C-X "<    pipe-from-command, inserts standard output from command at the 
  1885.              current position. 
  1886. @reference-end
  1887. @reference-begin-class 92
  1888.    < F > make-it
  1889. @reference-end
  1890. @reference-begin-class 98
  1891.      make-it  
  1892.     --------- 
  1893.  
  1894.    M-x m     make-it, invoke make 
  1895. @reference-end
  1896. @reference-begin-class 92
  1897.    < G > compile-it
  1898. @reference-end
  1899. @reference-begin-class 99
  1900.      compile-it  
  1901.     ------------ 
  1902.  
  1903.    M-x c     compile-it, invoke C compiler 
  1904. @reference-end
  1905. @reference-begin-class 92
  1906.    < H > beautify-c-code
  1907. @reference-end
  1908. @reference-begin-class 100
  1909.      beautify-c-code  
  1910.     ----------------- 
  1911.  
  1912.    C-X "i    beautify-c-code, filter buffer through beautifier 
  1913. @reference-end
  1914. @reference-begin-class 92
  1915.    < I > check-out
  1916. @reference-end
  1917. @reference-begin-class 101
  1918.      check-out  
  1919.     ----------- 
  1920.  
  1921.    M-x o     check-out, checks current file out but does *not* reload the 
  1922.              buffer. 
  1923. @reference-end
  1924. @reference-begin-class 92
  1925.    < J > check-in
  1926. @reference-end
  1927. @reference-begin-class 102
  1928.      check-in  
  1929.     ---------- 
  1930.  
  1931.    M-x i     check-in, saves buffer and checks file in 
  1932. @reference-end
  1933. @reference-begin-class 92
  1934.    < M > spell-it
  1935. @reference-end
  1936. @reference-begin-class 103
  1937.      spell-it  
  1938.     ---------- 
  1939.  
  1940.    M-x s     spell-it, runs current file through spell and starts an 
  1941.              interactive search and replace for all misspelled words. 
  1942. @reference-end
  1943. @reference-begin-class 53
  1944.    < M > More advanced functions
  1945. @reference-end
  1946. @reference-begin-class 104
  1947.      More advanced functions  
  1948.     ------------------------- 
  1949.  
  1950.    < A > C-Mode
  1951. @reference-end
  1952. @reference-begin-class 105
  1953.      C-Mode  
  1954.     -------- 
  1955.  
  1956.    The following characters have a special meaning in C-mode: 
  1957.  
  1958.    ( [ { '  "  ; 
  1959.  
  1960.  
  1961.    Just play around to get used to them, once you are they save lots of 
  1962.    typing. In C-mode words consist of letters, digits and underscores. 
  1963. @reference-end
  1964. @reference-begin-class 104
  1965.    < B > Tags
  1966. @reference-end
  1967. @reference-begin-class 106
  1968.      Tags  
  1969.     ------ 
  1970.  
  1971.    < A > enter-and-go-tags-buffer
  1972. @reference-end
  1973. @reference-begin-class 107
  1974.      enter-and-go-tags-buffer  
  1975.     -------------------------- 
  1976.  
  1977.    M-.       enter-and-go-tags-buffer, prompt for tag and go to tagged 
  1978.              position (open buffer, if needed) 
  1979.  
  1980.              filename-or-tag-completion can also be used. In this case, the 
  1981.              first tag starting with the given text is used. 
  1982.  
  1983.  
  1984.    < A > Tags file
  1985. @reference-end
  1986. @reference-begin-class 106
  1987.    < B > find-and-go-tags-buffer
  1988. @reference-end
  1989. @reference-begin-class 108
  1990.      find-and-go-tags-buffer  
  1991.     ------------------------- 
  1992.  
  1993.    M-,       find-and-go-tags-buffer, like enter-and-go-tags-buffer, but use 
  1994.              the word under the cursor 
  1995.  
  1996.  
  1997.    < A > Tags file
  1998. @reference-end
  1999. @reference-begin-class 106
  2000.    < C > set-user-tags-file
  2001. @reference-end
  2002. @reference-begin-class 109
  2003.      set-user-tags-file  
  2004.     -------------------- 
  2005.  
  2006.    C-X t     set-user-tags-file, define a new tags file (empty input uses 
  2007.              default tags files). 
  2008.  
  2009.  
  2010.    < A > Tags file
  2011. @reference-end
  2012. @reference-begin-class 104
  2013.    < C > Macros
  2014. @reference-end
  2015. @reference-begin-class 110
  2016.      Macros  
  2017.     -------- 
  2018.  
  2019.    < A > start-define-macro
  2020. @reference-end
  2021. @reference-begin-class 111
  2022.      start-define-macro  
  2023.     -------------------- 
  2024.  
  2025.    C-X "(    define-macro, starts recording a keyboard macro 
  2026. @reference-end
  2027. @reference-begin-class 110
  2028.    < B > end-define-macro
  2029. @reference-end
  2030. @reference-begin-class 112
  2031.      end-define-macro  
  2032.     ------------------ 
  2033.  
  2034.    C-X ")    define-macro, ends recording a keyboard macro 
  2035. @reference-end
  2036. @reference-begin-class 110
  2037.    < C > execute-macro
  2038. @reference-end
  2039. @reference-begin-class 113
  2040.      execute-macro  
  2041.     --------------- 
  2042.  
  2043.    C-X "e    execute-macro, executes a recorded keyboard macro 
  2044. @reference-end
  2045. @reference-begin-class 104
  2046.  
  2047.  
  2048.    < D > center-and-redraw-display
  2049. @reference-end
  2050. @reference-begin-class 114
  2051.      center-and-redraw-display  
  2052.     --------------------------- 
  2053.  
  2054.    C-L       center-and-redraw-display, redraws screen bringing the current 
  2055.              line to the middle of the screen. 
  2056. @reference-end
  2057. @reference-begin-class 104
  2058.    < E > redraw-display
  2059. @reference-end
  2060. @reference-begin-class 115
  2061.      redraw-display  
  2062.     ---------------- 
  2063.  
  2064.    refresh  |  M-C-L 
  2065.              redraw, redraws screen e.g. after write(1)s from other people 
  2066.              etc. 
  2067. @reference-end
  2068. @reference-begin-class 104
  2069.  
  2070.  
  2071.    < F > describe-bindings
  2072. @reference-end
  2073. @reference-begin-class 116
  2074.      describe-bindings  
  2075.     ------------------- 
  2076.  
  2077.    shift-help  |  C-X "? 
  2078.              describe-bindings, shows all commands and where they are bound 
  2079.              to 
  2080. @reference-end
  2081. @reference-begin-class 104
  2082.    < G > describe-fold
  2083. @reference-end
  2084. @reference-begin-class 117
  2085.      describe-fold  
  2086.     --------------- 
  2087.  
  2088.    C-X "=    describe-fold, gives you some information about your position in 
  2089.              the text 
  2090. @reference-end
  2091. @reference-begin-class 104
  2092.    < H > quote-character
  2093. @reference-end
  2094. @reference-begin-class 118
  2095.      quote-character  
  2096.     ----------------- 
  2097.  
  2098.    C-Q       quote-character, simply insert the next character and do not 
  2099.              parse it as a command 
  2100. @reference-end
  2101. @reference-begin-class 104
  2102.    < I > filename-or-tag-completion
  2103. @reference-end
  2104. @reference-begin-class 119
  2105.      filename-or-tag-completion  
  2106.     ---------------------------- 
  2107.  
  2108.    M-C-I     filename-or-tag-completion, complete a word to a filename. This 
  2109.              function works everywhere, not only in prompts! If 
  2110.              filename-or-tag-completion is used outside of prompts and if 
  2111.              there is no filename to complete, Emacs tries to complete the 
  2112.              started word as tag. 
  2113.  
  2114.  
  2115.    < A > Tags file
  2116. @reference-end
  2117. @reference-begin-class 104
  2118.    < J > fill-paragraph
  2119. @reference-end
  2120. @reference-begin-class 120
  2121.      fill-paragraph  
  2122.     ---------------- 
  2123.  
  2124.    M-q       fill-paragraph, fills paragraph from cursor to end of paragraph 
  2125. @reference-end
  2126. @reference-begin-class 104
  2127.    < M > set-fill-column
  2128. @reference-end
  2129. @reference-begin-class 121
  2130.      set-fill-column  
  2131.     ----------------- 
  2132.  
  2133.    C-X "f    set-fill-column, sets fill column to argument, or cursor 
  2134.              position if none is given, or asks for it if cursor if at the 
  2135.              left margin. 
  2136. @reference-end
  2137. @reference-begin-class 53
  2138.    < O > How to get out
  2139. @reference-end
  2140. @reference-begin-class 122
  2141.      How to get out  
  2142.     ---------------- 
  2143.  
  2144.    < A > exit-origami
  2145. @reference-end
  2146. @reference-begin-class 123
  2147.      exit-origami  
  2148.     -------------- 
  2149.  
  2150.    exit  |  C-X C-C 
  2151.              exit-origami 
  2152. @reference-end
  2153. @reference-begin-class 122
  2154.    < B > save-and-exit-origami
  2155. @reference-end
  2156. @reference-begin-class 124
  2157.      save-and-exit-origami  
  2158.     ----------------------- 
  2159.  
  2160.    shift-exit  |  M-Z 
  2161.              save-and-exit-origami 
  2162. @reference-end
  2163. @reference-begin-class 122
  2164.    < C > suspend-origami
  2165. @reference-end
  2166. @reference-begin-class 125
  2167.      suspend-origami  
  2168.     ----------------- 
  2169.  
  2170.    suspend  |  C-Z 
  2171.              suspend-origami 
  2172. @reference-end
  2173. @reference-begin-class 53
  2174.  
  2175.  
  2176.    < R > Funny Functions
  2177. @reference-end
  2178. @reference-begin-class 126
  2179.      Funny Functions  
  2180.     ----------------- 
  2181.  
  2182.    < A > sokoban
  2183. @reference-end
  2184. @reference-begin-class 127
  2185.      sokoban  
  2186.     --------- 
  2187.  
  2188.    M-X k       
  2189.              < A > sokoban
  2190. @reference-end
  2191. @reference-begin-class 128
  2192.      sokoban  
  2193.     --------- 
  2194.  
  2195. @reference-end
  2196. @reference-begin-class 126
  2197.    < B > towers-of-hanoi
  2198. @reference-end
  2199. @reference-begin-class 129
  2200.      towers-of-hanoi  
  2201.     ----------------- 
  2202.  
  2203.    M-X t     Play the well known game towers-of-hanoi at the bottom of the 
  2204.              current buffer. set-argument can be used, to control the height. 
  2205. @reference-end
  2206. (demand-load(
  2207. (forward ref-abort-unload)(forward ref-case-fun)
  2208. (defvar(ref-class ref-call ref-n ref-call-i-next ref-call-i-quit ref-call-i-back ref-call-i-kill ))
  2209. @if-using(tags-mac-reference-file-TREE)(deffun tags-mac-reference-file(set ref-call 1 ref-case-fun ref-abort-unload redraw-display))@fi
  2210. @if-using(sokoban-reference-file-TREE)(deffun sokoban-reference-file(set ref-call 37 ref-case-fun ref-abort-unload redraw-display))@fi
  2211. @if-using(CommonUsedReferences-TREE)(deffun CommonUsedReferences(set ref-call 42 ref-case-fun ref-abort-unload redraw-display))@fi
  2212. @if-using(EMacs-Reference-Card-TREE)(deffun EMacs-Reference-Card(set ref-call 48 ref-case-fun ref-abort-unload redraw-display))@fi
  2213.  
  2214. (defvar( c-1 c-2 c-3 c-4 c-5 c-6 c-7 c-8 c-9 c-10 c-11 c-12 c-13 c-14 c-15 c-16 c-17 c-18 c-19 c-20 c-21 ))
  2215. @use(U-C-48)
  2216. @use(U-C-49)
  2217. @use(ref-viewer-1-0-USED)
  2218. @use(U-C-50)
  2219. @use(U-C-51)
  2220. @use(U-C-52)
  2221. @use(U-C-53)
  2222. @use(U-C-54)
  2223. @use(U-C-55)
  2224. @use(U-C-56)
  2225. @use(U-C-57)
  2226. @use(U-C-58)
  2227. @use(U-C-59)
  2228. @use(U-C-60)
  2229. @use(U-C-61)
  2230. @use(U-C-62)
  2231. @use(U-C-63)
  2232. @use(U-C-64)
  2233. @use(U-C-65)
  2234. @use(ref-viewer-1-10-USED)
  2235. @use(U-C-66)
  2236. @use(U-C-67)
  2237. @use(U-C-68)
  2238. @use(U-C-69)
  2239. @use(U-C-70)
  2240. @use(U-C-71)
  2241. @use(U-C-72)
  2242. @use(U-C-73)
  2243. @use(U-C-74)
  2244. @use(U-C-75)
  2245. @use(U-C-76)
  2246. @use(U-C-77)
  2247. @use(ref-viewer-1-11-USED)
  2248. @use(U-C-78)
  2249. @use(U-C-79)
  2250. @use(U-C-80)
  2251. @use(U-C-81)
  2252. @use(U-C-82)
  2253. @use(ref-viewer-1-1-USED)
  2254. @use(U-C-83)
  2255. @use(ref-viewer-1-3-USED)
  2256. @use(U-C-84)
  2257. @use(U-C-85)
  2258. @use(U-C-86)
  2259. @use(U-C-87)
  2260. @use(U-C-88)
  2261. @use(U-C-89)
  2262. @use(U-C-90)
  2263. @use(ref-viewer-1-2-USED)
  2264. @use(U-C-91)
  2265. @use(U-C-92)
  2266. @use(U-C-93)
  2267. @use(U-C-94)
  2268. @use(U-C-95)
  2269. @use(U-C-96)
  2270. @use(U-C-97)
  2271. @use(U-C-98)
  2272. @use(U-C-99)
  2273. @use(U-C-100)
  2274. @use(U-C-101)
  2275. @use(U-C-102)
  2276. @use(U-C-103)
  2277. @use(U-C-104)
  2278. @use(U-C-105)
  2279. @use(U-C-106)
  2280. @use(U-C-107)
  2281. @use(U-C-108)
  2282. @use(U-C-109)
  2283. @use(U-C-110)
  2284. @use(U-C-111)
  2285. @use(U-C-112)
  2286. @use(U-C-113)
  2287. @use(U-C-114)
  2288. @use(U-C-115)
  2289. @use(U-C-116)
  2290. @use(U-C-117)
  2291. @use(U-C-118)
  2292. @use(U-C-119)
  2293. @use(U-C-120)
  2294. @use(U-C-121)
  2295. @use(U-C-122)
  2296. @use(U-C-123)
  2297. @use(U-C-124)
  2298. @use(U-C-125)
  2299. @use(U-C-126)
  2300. @use(U-C-127)
  2301. @use(U-C-128)
  2302. @use(U-C-129)
  2303. @use(ref-viewer-1-13-USED)
  2304. @use(ref-viewer-1-7-USED)
  2305. @use not( file-reference sokoban-call-ref regexp-reference cmd-reference)
  2306. @if-using( ref-viewer-1-21-USED ref-viewer-1-20-USED ref-viewer-1-19-USED ref-viewer-1-18-USED ref-viewer-1-17-USED ref-viewer-1-16-USED ref-viewer-1-15-USED ref-viewer-1-14-USED ref-viewer-1-13-USED ref-viewer-1-12-USED ref-viewer-1-11-USED ref-viewer-1-10-USED ref-viewer-1-9-USED ref-viewer-1-8-USED ref-viewer-1-7-USED ref-viewer-1-6-USED ref-viewer-1-5-USED ref-viewer-1-4-USED ref-viewer-1-3-USED ref-viewer-1-2-USED ref-viewer-1-1-USED ref-viewer-1-0-USED )
  2307. (demand-load not((defmac ref-viewer-1( "   "Q  "u  "i  "t  "   "L  "a  "s  "t  "   "#  "(  "N  "e  "x  "t  ")  "   "P  "r  "e  "v  "   "K  "i  "l  "l  next-line "invalid "  "input!  next-line "  "A "  "B "  "C "  "D "  "E  next-line "  "F "  "G "  "H "  "I "  "J "  "M "  "O "  "R "  "S "  "T ))(undeclare(ref-viewer-1))))
  2308. (deffun ref-viewer-1(
  2309.  if not(ref-call-i-quit)(
  2310.   history-edit misc ()
  2311.    insert-ascii I_QUIT
  2312.    beginning-of-line
  2313.    set-counter ref-call-i-quit store-character
  2314.    insert-ascii I_NEXT_PAGE
  2315.    beginning-of-line
  2316.    set-counter ref-call-i-next store-character
  2317.    insert-ascii I_BACK
  2318.    forward-character
  2319.    set-counter ref-call-i-back store-character
  2320.    insert-ascii I_KILL
  2321.    forward-character
  2322.    set-counter ref-call-i-kill store-character
  2323.    newline-and-indent
  2324.  )fi
  2325.  do(
  2326.   local(modify-behaviour )( set modify-behaviour ref-class help)
  2327.   if not(in-prompt)(
  2328.    message("invalid "  "input! )
  2329.    show-cursor 15
  2330.    set ref-call 0
  2331.    return-from-macro
  2332.   )else(
  2333.    do(
  2334.     begin-prompt-macro
  2335.     set ref-call 1
  2336.     local(ref-n)(
  2337.      case
  2338.       (                         =(ref-n 0)(menu-counter ref-call( "   "Q  "u  "i  "t  "   "L  "a  "s  "t  "   "#  "(  "N  "e  "x  "t  ")  "   "P  "r  "e  "v  "   "K  "i  "l  "l )))
  2339.       (pre(set ref-n -(ref-n 1))=(ref-n 0)(menu-counter ref-call( "   "Q  "u  "i  "t  "   "L  "a  "s  "t  "   "#  "(  "N  "e  "x  "t  ")  "   "P  "r  "e  "v  "   "K  "i  "l  "l  "  "A)))
  2340.       (pre(set ref-n -(ref-n 1))=(ref-n 0)(menu-counter ref-call( "   "Q  "u  "i  "t  "   "L  "a  "s  "t  "   "#  "(  "N  "e  "x  "t  ")  "   "P  "r  "e  "v  "   "K  "i  "l  "l  "  "A "  "B)))
  2341.       (pre(set ref-n -(ref-n 1))=(ref-n 0)(menu-counter ref-call( "   "Q  "u  "i  "t  "   "L  "a  "s  "t  "   "#  "(  "N  "e  "x  "t  ")  "   "P  "r  "e  "v  "   "K  "i  "l  "l  "  "A "  "B "  "C)))
  2342.       (pre(set ref-n -(ref-n 1))=(ref-n 0)(menu-counter ref-call( "   "Q  "u  "i  "t  "   "L  "a  "s  "t  "   "#  "(  "N  "e  "x  "t  ")  "   "P  "r  "e  "v  "   "K  "i  "l  "l  "  "A "  "B "  "C "  "D)))
  2343.       (pre(set ref-n -(ref-n 1))=(ref-n 0)(menu-counter ref-call( "   "Q  "u  "i  "t  "   "L  "a  "s  "t  "   "#  "(  "N  "e  "x  "t  ")  "   "P  "r  "e  "v  "   "K  "i  "l  "l  "  "A "  "B "  "C "  "D "  "E)))
  2344.       (pre(set ref-n -(ref-n 1))=(ref-n 0)(menu-counter ref-call( "   "Q  "u  "i  "t  "   "L  "a  "s  "t  "   "#  "(  "N  "e  "x  "t  ")  "   "P  "r  "e  "v  "   "K  "i  "l  "l  "  "A "  "B "  "C "  "D "  "E "  "F)))
  2345.       (pre(set ref-n -(ref-n 1))=(ref-n 0)(menu-counter ref-call( "   "Q  "u  "i  "t  "   "L  "a  "s  "t  "   "#  "(  "N  "e  "x  "t  ")  "   "P  "r  "e  "v  "   "K  "i  "l  "l  "  "A "  "B "  "C "  "D "  "E "  "F "  "G)))
  2346.       (pre(set ref-n -(ref-n 1))=(ref-n 0)(menu-counter ref-call( "   "Q  "u  "i  "t  "   "L  "a  "s  "t  "   "#  "(  "N  "e  "x  "t  ")  "   "P  "r  "e  "v  "   "K  "i  "l  "l  "  "A "  "B "  "C "  "D "  "E "  "F "  "G "  "H)))
  2347.       (pre(set ref-n -(ref-n 1))=(ref-n 0)(menu-counter ref-call( "   "Q  "u  "i  "t  "   "L  "a  "s  "t  "   "#  "(  "N  "e  "x  "t  ")  "   "P  "r  "e  "v  "   "K  "i  "l  "l  "  "A "  "B "  "C "  "D "  "E "  "F "  "G "  "H "  "I)))
  2348.       (pre(set ref-n -(ref-n 1))=(ref-n 0)(menu-counter ref-call( "   "Q  "u  "i  "t  "   "L  "a  "s  "t  "   "#  "(  "N  "e  "x  "t  ")  "   "P  "r  "e  "v  "   "K  "i  "l  "l  "  "A "  "B "  "C "  "D "  "E "  "F "  "G "  "H "  "I "  "J)))
  2349.       (pre(set ref-n -(ref-n 1))=(ref-n 0)(menu-counter ref-call( "   "Q  "u  "i  "t  "   "L  "a  "s  "t  "   "#  "(  "N  "e  "x  "t  ")  "   "P  "r  "e  "v  "   "K  "i  "l  "l  "  "A "  "B "  "C "  "D "  "E "  "F "  "G "  "H "  "I "  "J "  "M)))
  2350.       (pre(set ref-n -(ref-n 1))=(ref-n 0)(menu-counter ref-call( "   "Q  "u  "i  "t  "   "L  "a  "s  "t  "   "#  "(  "N  "e  "x  "t  ")  "   "P  "r  "e  "v  "   "K  "i  "l  "l  "  "A "  "B "  "C "  "D "  "E "  "F "  "G "  "H "  "I "  "J "  "M "  "O)))
  2351.       (pre(set ref-n -(ref-n 1))=(ref-n 0)(menu-counter ref-call( "   "Q  "u  "i  "t  "   "L  "a  "s  "t  "   "#  "(  "N  "e  "x  "t  ")  "   "P  "r  "e  "v  "   "K  "i  "l  "l  "  "A "  "B "  "C "  "D "  "E "  "F "  "G "  "H "  "I "  "J "  "M "  "O "  "R)))
  2352.       (pre(set ref-n -(ref-n 1))=(ref-n 0)(menu-counter ref-call( "   "Q  "u  "i  "t  "   "L  "a  "s  "t  "   "#  "(  "N  "e  "x  "t  ")  "   "P  "r  "e  "v  "   "K  "i  "l  "l  "  "A "  "B "  "C "  "D "  "E "  "F "  "G "  "H "  "I "  "J "  "M "  "O "  "R "  "S)))
  2353.       (pre(set ref-n -(ref-n 1))=(ref-n 0)(menu-counter ref-call( "   "Q  "u  "i  "t  "   "L  "a  "s  "t  "   "#  "(  "N  "e  "x  "t  ")  "   "P  "r  "e  "v  "   "K  "i  "l  "l  "  "A "  "B "  "C "  "D "  "E "  "F "  "G "  "H "  "I "  "J "  "M "  "O "  "R "  "S "  "T)))
  2354.       (pre(set ref-n -(ref-n 1))=(ref-n 0)(menu-counter ref-call( "   "Q  "u  "i  "t  "   "L  "a  "s  "t  "   "#  "(  "N  "e  "x  "t  ")  "   "P  "r  "e  "v  "   "K  "i  "l  "l  "  "A "  "B "  "C "  "D "  "E "  "F "  "G "  "H "  "I "  "J "  "M "  "O "  "R "  "S "  "T "  "U)))
  2355.       (pre(set ref-n -(ref-n 1))=(ref-n 0)(menu-counter ref-call( "   "Q  "u  "i  "t  "   "L  "a  "s  "t  "   "#  "(  "N  "e  "x  "t  ")  "   "P  "r  "e  "v  "   "K  "i  "l  "l  "  "A "  "B "  "C "  "D "  "E "  "F "  "G "  "H "  "I "  "J "  "M "  "O "  "R "  "S "  "T "  "U "  "V)))
  2356.       (pre(set ref-n -(ref-n 1))=(ref-n 0)(menu-counter ref-call( "   "Q  "u  "i  "t  "   "L  "a  "s  "t  "   "#  "(  "N  "e  "x  "t  ")  "   "P  "r  "e  "v  "   "K  "i  "l  "l  "  "A "  "B "  "C "  "D "  "E "  "F "  "G "  "H "  "I "  "J "  "M "  "O "  "R "  "S "  "T "  "U "  "V "  "W)))
  2357.       (pre(set ref-n -(ref-n 1))=(ref-n 0)(menu-counter ref-call( "   "Q  "u  "i  "t  "   "L  "a  "s  "t  "   "#  "(  "N  "e  "x  "t  ")  "   "P  "r  "e  "v  "   "K  "i  "l  "l  "  "A "  "B "  "C "  "D "  "E "  "F "  "G "  "H "  "I "  "J "  "M "  "O "  "R "  "S "  "T "  "U "  "V "  "W "  "X)))
  2358.       (pre(set ref-n -(ref-n 1))=(ref-n 0)(menu-counter ref-call( "   "Q  "u  "i  "t  "   "L  "a  "s  "t  "   "#  "(  "N  "e  "x  "t  ")  "   "P  "r  "e  "v  "   "K  "i  "l  "l  "  "A "  "B "  "C "  "D "  "E "  "F "  "G "  "H "  "I "  "J "  "M "  "O "  "R "  "S "  "T "  "U "  "V "  "W "  "X "  "Y)))
  2359.       (pre(set ref-n -(ref-n 1))=(ref-n 0)(menu-counter ref-call( "   "Q  "u  "i  "t  "   "L  "a  "s  "t  "   "#  "(  "N  "e  "x  "t  ")  "   "P  "r  "e  "v  "   "K  "i  "l  "l  "  "A "  "B "  "C "  "D "  "E "  "F "  "G "  "H "  "I "  "J "  "M "  "O "  "R "  "S "  "T "  "U "  "V "  "W "  "X "  "Y "  "Z)))
  2360.      esac
  2361.     )
  2362.     end-prompt-macro
  2363.     case
  2364.      (                               =(ref-call 0)(screen-off insert-ascii ref-call-i-quit screen-on set ref-call 1 return-from-macro))
  2365.      (pre(set ref-call -(ref-call 1))=(ref-call 0)(screen-off insert-ascii ref-call-i-quit screen-on return-from-macro))
  2366.      (pre(set ref-call -(ref-call 1))=(ref-call 0)( insert-ascii ref-call-i-next ))
  2367.      (pre(set ref-call -(ref-call 1))=(ref-call 0)( insert-ascii ref-call-i-back ))
  2368.      (pre(set ref-call -(ref-call 1))=(ref-call 0)( insert-ascii ref-call-i-kill ))
  2369.     default(
  2370.      screen-off insert-ascii ref-call-i-quit screen-on
  2371.      case
  2372.       (or(>(ref-call ref-n) =(ref-n 0) <=(ref-call 0))(message("invalid "  "input! )show-cursor 15 return-from-macro))
  2373.       (pre(set ref-call -(ref-call 1))=(ref-call 0)(@if-using( ref-viewer-1-1-USED ref-viewer-1-2-USED ref-viewer-1-3-USED ref-viewer-1-4-USED ref-viewer-1-5-USED ref-viewer-1-6-USED ref-viewer-1-7-USED ref-viewer-1-8-USED ref-viewer-1-9-USED ref-viewer-1-10-USED ref-viewer-1-11-USED ref-viewer-1-12-USED ref-viewer-1-13-USED ref-viewer-1-14-USED ref-viewer-1-15-USED ref-viewer-1-16-USED ref-viewer-1-17-USED ref-viewer-1-18-USED ref-viewer-1-19-USED ref-viewer-1-20-USED ref-viewer-1-21-USED )set ref-call c-1 @fi))
  2374.       (pre(set ref-call -(ref-call 1))=(ref-call 0)(@if-using( ref-viewer-1-2-USED ref-viewer-1-3-USED ref-viewer-1-4-USED ref-viewer-1-5-USED ref-viewer-1-6-USED ref-viewer-1-7-USED ref-viewer-1-8-USED ref-viewer-1-9-USED ref-viewer-1-10-USED ref-viewer-1-11-USED ref-viewer-1-12-USED ref-viewer-1-13-USED ref-viewer-1-14-USED ref-viewer-1-15-USED ref-viewer-1-16-USED ref-viewer-1-17-USED ref-viewer-1-18-USED ref-viewer-1-19-USED ref-viewer-1-20-USED ref-viewer-1-21-USED )set ref-call c-2 @fi))
  2375.       (pre(set ref-call -(ref-call 1))=(ref-call 0)(@if-using( ref-viewer-1-3-USED ref-viewer-1-4-USED ref-viewer-1-5-USED ref-viewer-1-6-USED ref-viewer-1-7-USED ref-viewer-1-8-USED ref-viewer-1-9-USED ref-viewer-1-10-USED ref-viewer-1-11-USED ref-viewer-1-12-USED ref-viewer-1-13-USED ref-viewer-1-14-USED ref-viewer-1-15-USED ref-viewer-1-16-USED ref-viewer-1-17-USED ref-viewer-1-18-USED ref-viewer-1-19-USED ref-viewer-1-20-USED ref-viewer-1-21-USED )set ref-call c-3 @fi))
  2376.       (pre(set ref-call -(ref-call 1))=(ref-call 0)(@if-using( ref-viewer-1-4-USED ref-viewer-1-5-USED ref-viewer-1-6-USED ref-viewer-1-7-USED ref-viewer-1-8-USED ref-viewer-1-9-USED ref-viewer-1-10-USED ref-viewer-1-11-USED ref-viewer-1-12-USED ref-viewer-1-13-USED ref-viewer-1-14-USED ref-viewer-1-15-USED ref-viewer-1-16-USED ref-viewer-1-17-USED ref-viewer-1-18-USED ref-viewer-1-19-USED ref-viewer-1-20-USED ref-viewer-1-21-USED )set ref-call c-4 @fi))
  2377.       (pre(set ref-call -(ref-call 1))=(ref-call 0)(@if-using( ref-viewer-1-5-USED ref-viewer-1-6-USED ref-viewer-1-7-USED ref-viewer-1-8-USED ref-viewer-1-9-USED ref-viewer-1-10-USED ref-viewer-1-11-USED ref-viewer-1-12-USED ref-viewer-1-13-USED ref-viewer-1-14-USED ref-viewer-1-15-USED ref-viewer-1-16-USED ref-viewer-1-17-USED ref-viewer-1-18-USED ref-viewer-1-19-USED ref-viewer-1-20-USED ref-viewer-1-21-USED )set ref-call c-5 @fi))
  2378.       (pre(set ref-call -(ref-call 1))=(ref-call 0)(@if-using( ref-viewer-1-6-USED ref-viewer-1-7-USED ref-viewer-1-8-USED ref-viewer-1-9-USED ref-viewer-1-10-USED ref-viewer-1-11-USED ref-viewer-1-12-USED ref-viewer-1-13-USED ref-viewer-1-14-USED ref-viewer-1-15-USED ref-viewer-1-16-USED ref-viewer-1-17-USED ref-viewer-1-18-USED ref-viewer-1-19-USED ref-viewer-1-20-USED ref-viewer-1-21-USED )set ref-call c-6 @fi))
  2379.       (pre(set ref-call -(ref-call 1))=(ref-call 0)(@if-using( ref-viewer-1-7-USED ref-viewer-1-8-USED ref-viewer-1-9-USED ref-viewer-1-10-USED ref-viewer-1-11-USED ref-viewer-1-12-USED ref-viewer-1-13-USED ref-viewer-1-14-USED ref-viewer-1-15-USED ref-viewer-1-16-USED ref-viewer-1-17-USED ref-viewer-1-18-USED ref-viewer-1-19-USED ref-viewer-1-20-USED ref-viewer-1-21-USED )set ref-call c-7 @fi))
  2380.       (pre(set ref-call -(ref-call 1))=(ref-call 0)(@if-using( ref-viewer-1-8-USED ref-viewer-1-9-USED ref-viewer-1-10-USED ref-viewer-1-11-USED ref-viewer-1-12-USED ref-viewer-1-13-USED ref-viewer-1-14-USED ref-viewer-1-15-USED ref-viewer-1-16-USED ref-viewer-1-17-USED ref-viewer-1-18-USED ref-viewer-1-19-USED ref-viewer-1-20-USED ref-viewer-1-21-USED )set ref-call c-8 @fi))
  2381.       (pre(set ref-call -(ref-call 1))=(ref-call 0)(@if-using( ref-viewer-1-9-USED ref-viewer-1-10-USED ref-viewer-1-11-USED ref-viewer-1-12-USED ref-viewer-1-13-USED ref-viewer-1-14-USED ref-viewer-1-15-USED ref-viewer-1-16-USED ref-viewer-1-17-USED ref-viewer-1-18-USED ref-viewer-1-19-USED ref-viewer-1-20-USED ref-viewer-1-21-USED )set ref-call c-9 @fi))
  2382.       (pre(set ref-call -(ref-call 1))=(ref-call 0)(@if-using( ref-viewer-1-10-USED ref-viewer-1-11-USED ref-viewer-1-12-USED ref-viewer-1-13-USED ref-viewer-1-14-USED ref-viewer-1-15-USED ref-viewer-1-16-USED ref-viewer-1-17-USED ref-viewer-1-18-USED ref-viewer-1-19-USED ref-viewer-1-20-USED ref-viewer-1-21-USED )set ref-call c-10 @fi))
  2383.       (pre(set ref-call -(ref-call 1))=(ref-call 0)(@if-using( ref-viewer-1-11-USED ref-viewer-1-12-USED ref-viewer-1-13-USED ref-viewer-1-14-USED ref-viewer-1-15-USED ref-viewer-1-16-USED ref-viewer-1-17-USED ref-viewer-1-18-USED ref-viewer-1-19-USED ref-viewer-1-20-USED ref-viewer-1-21-USED )set ref-call c-11 @fi))
  2384.       (pre(set ref-call -(ref-call 1))=(ref-call 0)(@if-using( ref-viewer-1-12-USED ref-viewer-1-13-USED ref-viewer-1-14-USED ref-viewer-1-15-USED ref-viewer-1-16-USED ref-viewer-1-17-USED ref-viewer-1-18-USED ref-viewer-1-19-USED ref-viewer-1-20-USED ref-viewer-1-21-USED )set ref-call c-12 @fi))
  2385.       (pre(set ref-call -(ref-call 1))=(ref-call 0)(@if-using( ref-viewer-1-13-USED ref-viewer-1-14-USED ref-viewer-1-15-USED ref-viewer-1-16-USED ref-viewer-1-17-USED ref-viewer-1-18-USED ref-viewer-1-19-USED ref-viewer-1-20-USED ref-viewer-1-21-USED )set ref-call c-13 @fi))
  2386.       (pre(set ref-call -(ref-call 1))=(ref-call 0)(@if-using( ref-viewer-1-14-USED ref-viewer-1-15-USED ref-viewer-1-16-USED ref-viewer-1-17-USED ref-viewer-1-18-USED ref-viewer-1-19-USED ref-viewer-1-20-USED ref-viewer-1-21-USED )set ref-call c-14 @fi))
  2387.       (pre(set ref-call -(ref-call 1))=(ref-call 0)(@if-using( ref-viewer-1-15-USED ref-viewer-1-16-USED ref-viewer-1-17-USED ref-viewer-1-18-USED ref-viewer-1-19-USED ref-viewer-1-20-USED ref-viewer-1-21-USED )set ref-call c-15 @fi))
  2388.       (pre(set ref-call -(ref-call 1))=(ref-call 0)(@if-using( ref-viewer-1-16-USED ref-viewer-1-17-USED ref-viewer-1-18-USED ref-viewer-1-19-USED ref-viewer-1-20-USED ref-viewer-1-21-USED )set ref-call c-16 @fi))
  2389.       (pre(set ref-call -(ref-call 1))=(ref-call 0)(@if-using( ref-viewer-1-17-USED ref-viewer-1-18-USED ref-viewer-1-19-USED ref-viewer-1-20-USED ref-viewer-1-21-USED )set ref-call c-17 @fi))
  2390.       (pre(set ref-call -(ref-call 1))=(ref-call 0)(@if-using( ref-viewer-1-18-USED ref-viewer-1-19-USED ref-viewer-1-20-USED ref-viewer-1-21-USED )set ref-call c-18 @fi))
  2391.       (pre(set ref-call -(ref-call 1))=(ref-call 0)(@if-using( ref-viewer-1-19-USED ref-viewer-1-20-USED ref-viewer-1-21-USED )set ref-call c-19 @fi))
  2392.       (pre(set ref-call -(ref-call 1))=(ref-call 0)(@if-using( ref-viewer-1-20-USED ref-viewer-1-21-USED )set ref-call c-20 @fi))
  2393.       (pre(set ref-call -(ref-call 1))=(ref-call 0)(@if-using( ref-viewer-1-21-USED )set ref-call c-21 @fi))
  2394.      default
  2395.       (message("invalid "  "input! )show-cursor 15 return-from-macro)
  2396.      esac
  2397.      ref-case-fun)
  2398.     esac
  2399.    )while in-prompt
  2400.   )fi
  2401.  )while =(ref-call 0)
  2402. ))
  2403. @fi
  2404. @if-using( ref-viewer-0-16-USED ref-viewer-0-15-USED ref-viewer-0-14-USED ref-viewer-0-13-USED ref-viewer-0-12-USED ref-viewer-0-11-USED ref-viewer-0-10-USED ref-viewer-0-9-USED ref-viewer-0-8-USED ref-viewer-0-7-USED ref-viewer-0-6-USED ref-viewer-0-5-USED ref-viewer-0-4-USED ref-viewer-0-3-USED ref-viewer-0-2-USED ref-viewer-0-1-USED ref-viewer-0-0-USED )
  2405. (demand-load not((defmac ref-viewer-0( "   "Q  "u  "i  "t  "   "R  "e  "t  "u  "r  "n  "   "#  "(  "n  "e  "x  "t  "-  "p  "a  "g  "e  ")  "   "B  "a  "c  "k  next-line "invalid "  "input!  next-line "  "0 "  "1 "  "2 "  "3 "  "4  next-line "  "5 "  "6 "  "7 "  "8 "  "9 "  "< ))(undeclare(ref-viewer-0))))
  2406. (deffun ref-viewer-0(
  2407.  if not(ref-call-i-quit)(
  2408.   history-edit misc ()
  2409.    insert-ascii I_QUIT
  2410.    beginning-of-line
  2411.    set-counter ref-call-i-quit store-character
  2412.    insert-ascii I_NEXT_PAGE
  2413.    beginning-of-line
  2414.    set-counter ref-call-i-next store-character
  2415.    insert-ascii I_BACK
  2416.    forward-character
  2417.    set-counter ref-call-i-back store-character
  2418.    insert-ascii I_KILL
  2419.    forward-character
  2420.    set-counter ref-call-i-kill store-character
  2421.    newline-and-indent
  2422.  )fi
  2423.  do(
  2424.   local(modify-behaviour )( set modify-behaviour ref-class help)
  2425.   if not(in-prompt)(
  2426.    message("invalid "  "input! )
  2427.    show-cursor 15
  2428.    set ref-call 0
  2429.    return-from-macro
  2430.   )else(
  2431.    do(
  2432.     begin-prompt-macro
  2433.     set ref-call 1
  2434.     local(ref-n)(
  2435.      case
  2436.       (                         =(ref-n 0)(menu-counter ref-call( "   "Q  "u  "i  "t  "   "R  "e  "t  "u  "r  "n  "   "#  "(  "n  "e  "x  "t  "-  "p  "a  "g  "e  ")  "   "B  "a  "c  "k )))
  2437.       (pre(set ref-n -(ref-n 1))=(ref-n 0)(menu-counter ref-call( "   "Q  "u  "i  "t  "   "R  "e  "t  "u  "r  "n  "   "#  "(  "n  "e  "x  "t  "-  "p  "a  "g  "e  ")  "   "B  "a  "c  "k  "  "0)))
  2438.       (pre(set ref-n -(ref-n 1))=(ref-n 0)(menu-counter ref-call( "   "Q  "u  "i  "t  "   "R  "e  "t  "u  "r  "n  "   "#  "(  "n  "e  "x  "t  "-  "p  "a  "g  "e  ")  "   "B  "a  "c  "k  "  "0 "  "1)))
  2439.       (pre(set ref-n -(ref-n 1))=(ref-n 0)(menu-counter ref-call( "   "Q  "u  "i  "t  "   "R  "e  "t  "u  "r  "n  "   "#  "(  "n  "e  "x  "t  "-  "p  "a  "g  "e  ")  "   "B  "a  "c  "k  "  "0 "  "1 "  "2)))
  2440.       (pre(set ref-n -(ref-n 1))=(ref-n 0)(menu-counter ref-call( "   "Q  "u  "i  "t  "   "R  "e  "t  "u  "r  "n  "   "#  "(  "n  "e  "x  "t  "-  "p  "a  "g  "e  ")  "   "B  "a  "c  "k  "  "0 "  "1 "  "2 "  "3)))
  2441.       (pre(set ref-n -(ref-n 1))=(ref-n 0)(menu-counter ref-call( "   "Q  "u  "i  "t  "   "R  "e  "t  "u  "r  "n  "   "#  "(  "n  "e  "x  "t  "-  "p  "a  "g  "e  ")  "   "B  "a  "c  "k  "  "0 "  "1 "  "2 "  "3 "  "4)))
  2442.       (pre(set ref-n -(ref-n 1))=(ref-n 0)(menu-counter ref-call( "   "Q  "u  "i  "t  "   "R  "e  "t  "u  "r  "n  "   "#  "(  "n  "e  "x  "t  "-  "p  "a  "g  "e  ")  "   "B  "a  "c  "k  "  "0 "  "1 "  "2 "  "3 "  "4 "  "5)))
  2443.       (pre(set ref-n -(ref-n 1))=(ref-n 0)(menu-counter ref-call( "   "Q  "u  "i  "t  "   "R  "e  "t  "u  "r  "n  "   "#  "(  "n  "e  "x  "t  "-  "p  "a  "g  "e  ")  "   "B  "a  "c  "k  "  "0 "  "1 "  "2 "  "3 "  "4 "  "5 "  "6)))
  2444.       (pre(set ref-n -(ref-n 1))=(ref-n 0)(menu-counter ref-call( "   "Q  "u  "i  "t  "   "R  "e  "t  "u  "r  "n  "   "#  "(  "n  "e  "x  "t  "-  "p  "a  "g  "e  ")  "   "B  "a  "c  "k  "  "0 "  "1 "  "2 "  "3 "  "4 "  "5 "  "6 "  "7)))
  2445.       (pre(set ref-n -(ref-n 1))=(ref-n 0)(menu-counter ref-call( "   "Q  "u  "i  "t  "   "R  "e  "t  "u  "r  "n  "   "#  "(  "n  "e  "x  "t  "-  "p  "a  "g  "e  ")  "   "B  "a  "c  "k  "  "0 "  "1 "  "2 "  "3 "  "4 "  "5 "  "6 "  "7 "  "8)))
  2446.       (pre(set ref-n -(ref-n 1))=(ref-n 0)(menu-counter ref-call( "   "Q  "u  "i  "t  "   "R  "e  "t  "u  "r  "n  "   "#  "(  "n  "e  "x  "t  "-  "p  "a  "g  "e  ")  "   "B  "a  "c  "k  "  "0 "  "1 "  "2 "  "3 "  "4 "  "5 "  "6 "  "7 "  "8 "  "9)))
  2447.       (pre(set ref-n -(ref-n 1))=(ref-n 0)(menu-counter ref-call( "   "Q  "u  "i  "t  "   "R  "e  "t  "u  "r  "n  "   "#  "(  "n  "e  "x  "t  "-  "p  "a  "g  "e  ")  "   "B  "a  "c  "k  "  "0 "  "1 "  "2 "  "3 "  "4 "  "5 "  "6 "  "7 "  "8 "  "9 "  "<)))
  2448.       (pre(set ref-n -(ref-n 1))=(ref-n 0)(menu-counter ref-call( "   "Q  "u  "i  "t  "   "R  "e  "t  "u  "r  "n  "   "#  "(  "n  "e  "x  "t  "-  "p  "a  "g  "e  ")  "   "B  "a  "c  "k  "  "0 "  "1 "  "2 "  "3 "  "4 "  "5 "  "6 "  "7 "  "8 "  "9 "  "< "  ">)))
  2449.       (pre(set ref-n -(ref-n 1))=(ref-n 0)(menu-counter ref-call( "   "Q  "u  "i  "t  "   "R  "e  "t  "u  "r  "n  "   "#  "(  "n  "e  "x  "t  "-  "p  "a  "g  "e  ")  "   "B  "a  "c  "k  "  "0 "  "1 "  "2 "  "3 "  "4 "  "5 "  "6 "  "7 "  "8 "  "9 "  "< "  "> "  "[)))
  2450.       (pre(set ref-n -(ref-n 1))=(ref-n 0)(menu-counter ref-call( "   "Q  "u  "i  "t  "   "R  "e  "t  "u  "r  "n  "   "#  "(  "n  "e  "x  "t  "-  "p  "a  "g  "e  ")  "   "B  "a  "c  "k  "  "0 "  "1 "  "2 "  "3 "  "4 "  "5 "  "6 "  "7 "  "8 "  "9 "  "< "  "> "  "[ "  "])))
  2451.       (pre(set ref-n -(ref-n 1))=(ref-n 0)(menu-counter ref-call( "   "Q  "u  "i  "t  "   "R  "e  "t  "u  "r  "n  "   "#  "(  "n  "e  "x  "t  "-  "p  "a  "g  "e  ")  "   "B  "a  "c  "k  "  "0 "  "1 "  "2 "  "3 "  "4 "  "5 "  "6 "  "7 "  "8 "  "9 "  "< "  "> "  "[ "  "] "  "@)))
  2452.       (pre(set ref-n -(ref-n 1))=(ref-n 0)(menu-counter ref-call( "   "Q  "u  "i  "t  "   "R  "e  "t  "u  "r  "n  "   "#  "(  "n  "e  "x  "t  "-  "p  "a  "g  "e  ")  "   "B  "a  "c  "k  "  "0 "  "1 "  "2 "  "3 "  "4 "  "5 "  "6 "  "7 "  "8 "  "9 "  "< "  "> "  "[ "  "] "  "@ "  "$)))
  2453.      esac
  2454.     )
  2455.     end-prompt-macro
  2456.     case
  2457.      (                               =(ref-call 0)(screen-off insert-ascii ref-call-i-quit screen-on set ref-call 1 return-from-macro))
  2458.      (pre(set ref-call -(ref-call 1))=(ref-call 0)(screen-off insert-ascii ref-call-i-quit screen-on return-from-macro))
  2459.      (pre(set ref-call -(ref-call 1))=(ref-call 0)( insert-ascii ref-call-i-next ))
  2460.      (pre(set ref-call -(ref-call 1))=(ref-call 0)( insert-ascii ref-call-i-back ))
  2461.     default(
  2462.      screen-off insert-ascii ref-call-i-quit screen-on
  2463.      case
  2464.       (or(>(ref-call ref-n) =(ref-n 0) <=(ref-call 0))(message("invalid "  "input! )show-cursor 15 return-from-macro))
  2465.       (pre(set ref-call -(ref-call 1))=(ref-call 0)(@if-using( ref-viewer-0-1-USED ref-viewer-0-2-USED ref-viewer-0-3-USED ref-viewer-0-4-USED ref-viewer-0-5-USED ref-viewer-0-6-USED ref-viewer-0-7-USED ref-viewer-0-8-USED ref-viewer-0-9-USED ref-viewer-0-10-USED ref-viewer-0-11-USED ref-viewer-0-12-USED ref-viewer-0-13-USED ref-viewer-0-14-USED ref-viewer-0-15-USED ref-viewer-0-16-USED )set ref-call c-1 @fi))
  2466.       (pre(set ref-call -(ref-call 1))=(ref-call 0)(@if-using( ref-viewer-0-2-USED ref-viewer-0-3-USED ref-viewer-0-4-USED ref-viewer-0-5-USED ref-viewer-0-6-USED ref-viewer-0-7-USED ref-viewer-0-8-USED ref-viewer-0-9-USED ref-viewer-0-10-USED ref-viewer-0-11-USED ref-viewer-0-12-USED ref-viewer-0-13-USED ref-viewer-0-14-USED ref-viewer-0-15-USED ref-viewer-0-16-USED )set ref-call c-2 @fi))
  2467.       (pre(set ref-call -(ref-call 1))=(ref-call 0)(@if-using( ref-viewer-0-3-USED ref-viewer-0-4-USED ref-viewer-0-5-USED ref-viewer-0-6-USED ref-viewer-0-7-USED ref-viewer-0-8-USED ref-viewer-0-9-USED ref-viewer-0-10-USED ref-viewer-0-11-USED ref-viewer-0-12-USED ref-viewer-0-13-USED ref-viewer-0-14-USED ref-viewer-0-15-USED ref-viewer-0-16-USED )set ref-call c-3 @fi))
  2468.       (pre(set ref-call -(ref-call 1))=(ref-call 0)(@if-using( ref-viewer-0-4-USED ref-viewer-0-5-USED ref-viewer-0-6-USED ref-viewer-0-7-USED ref-viewer-0-8-USED ref-viewer-0-9-USED ref-viewer-0-10-USED ref-viewer-0-11-USED ref-viewer-0-12-USED ref-viewer-0-13-USED ref-viewer-0-14-USED ref-viewer-0-15-USED ref-viewer-0-16-USED )set ref-call c-4 @fi))
  2469.       (pre(set ref-call -(ref-call 1))=(ref-call 0)(@if-using( ref-viewer-0-5-USED ref-viewer-0-6-USED ref-viewer-0-7-USED ref-viewer-0-8-USED ref-viewer-0-9-USED ref-viewer-0-10-USED ref-viewer-0-11-USED ref-viewer-0-12-USED ref-viewer-0-13-USED ref-viewer-0-14-USED ref-viewer-0-15-USED ref-viewer-0-16-USED )set ref-call c-5 @fi))
  2470.       (pre(set ref-call -(ref-call 1))=(ref-call 0)(@if-using( ref-viewer-0-6-USED ref-viewer-0-7-USED ref-viewer-0-8-USED ref-viewer-0-9-USED ref-viewer-0-10-USED ref-viewer-0-11-USED ref-viewer-0-12-USED ref-viewer-0-13-USED ref-viewer-0-14-USED ref-viewer-0-15-USED ref-viewer-0-16-USED )set ref-call c-6 @fi))
  2471.       (pre(set ref-call -(ref-call 1))=(ref-call 0)(@if-using( ref-viewer-0-7-USED ref-viewer-0-8-USED ref-viewer-0-9-USED ref-viewer-0-10-USED ref-viewer-0-11-USED ref-viewer-0-12-USED ref-viewer-0-13-USED ref-viewer-0-14-USED ref-viewer-0-15-USED ref-viewer-0-16-USED )set ref-call c-7 @fi))
  2472.       (pre(set ref-call -(ref-call 1))=(ref-call 0)(@if-using( ref-viewer-0-8-USED ref-viewer-0-9-USED ref-viewer-0-10-USED ref-viewer-0-11-USED ref-viewer-0-12-USED ref-viewer-0-13-USED ref-viewer-0-14-USED ref-viewer-0-15-USED ref-viewer-0-16-USED )set ref-call c-8 @fi))
  2473.       (pre(set ref-call -(ref-call 1))=(ref-call 0)(@if-using( ref-viewer-0-9-USED ref-viewer-0-10-USED ref-viewer-0-11-USED ref-viewer-0-12-USED ref-viewer-0-13-USED ref-viewer-0-14-USED ref-viewer-0-15-USED ref-viewer-0-16-USED )set ref-call c-9 @fi))
  2474.       (pre(set ref-call -(ref-call 1))=(ref-call 0)(@if-using( ref-viewer-0-10-USED ref-viewer-0-11-USED ref-viewer-0-12-USED ref-viewer-0-13-USED ref-viewer-0-14-USED ref-viewer-0-15-USED ref-viewer-0-16-USED )set ref-call c-10 @fi))
  2475.       (pre(set ref-call -(ref-call 1))=(ref-call 0)(@if-using( ref-viewer-0-11-USED ref-viewer-0-12-USED ref-viewer-0-13-USED ref-viewer-0-14-USED ref-viewer-0-15-USED ref-viewer-0-16-USED )set ref-call c-11 @fi))
  2476.       (pre(set ref-call -(ref-call 1))=(ref-call 0)(@if-using( ref-viewer-0-12-USED ref-viewer-0-13-USED ref-viewer-0-14-USED ref-viewer-0-15-USED ref-viewer-0-16-USED )set ref-call c-12 @fi))
  2477.       (pre(set ref-call -(ref-call 1))=(ref-call 0)(@if-using( ref-viewer-0-13-USED ref-viewer-0-14-USED ref-viewer-0-15-USED ref-viewer-0-16-USED )set ref-call c-13 @fi))
  2478.       (pre(set ref-call -(ref-call 1))=(ref-call 0)(@if-using( ref-viewer-0-14-USED ref-viewer-0-15-USED ref-viewer-0-16-USED )set ref-call c-14 @fi))
  2479.       (pre(set ref-call -(ref-call 1))=(ref-call 0)(@if-using( ref-viewer-0-15-USED ref-viewer-0-16-USED )set ref-call c-15 @fi))
  2480.       (pre(set ref-call -(ref-call 1))=(ref-call 0)(@if-using( ref-viewer-0-16-USED )set ref-call c-16 @fi))
  2481.      default
  2482.       (message("invalid "  "input! )show-cursor 15 return-from-macro)
  2483.      esac
  2484.      ref-case-fun)
  2485.     esac
  2486.    )while in-prompt
  2487.   )fi
  2488.  )while =(ref-call 0)
  2489. ))
  2490. @fi
  2491. (forward ref-case-fun-0)
  2492. (deffun ref-case-fun(
  2493.  local(ref-class ref-n)(
  2494.   @if-using( ref-viewer-0-0-USED ref-viewer-1-0-USED )set ref-n 0 @fi
  2495.   case
  2496.    (pre(set ref-call -(ref-call 3))or(0 @if-using(U-C-3)=(ref-call 0)@fi)
  2497.      (@if-using(U-C-3) set ref-class 3 ref-viewer-1 return-from-macro @use not(U-C-3)@fi))
  2498.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-4)=(ref-call 0)@fi)
  2499.      (@if-using(U-C-4) set ref-class 4 ref-viewer-1 return-from-macro @use not(U-C-4)@fi))
  2500.    (pre(set ref-call -(ref-call 2))or(0 @if-using(U-C-6)=(ref-call 0)@fi)
  2501.      (@if-using(U-C-6) set ref-class 6 ref-viewer-1 return-from-macro @use not(U-C-6)@fi))
  2502.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-7)=(ref-call 0)@fi)
  2503.      (@if-using(U-C-7) set ref-class 7 ref-viewer-1 return-from-macro @use not(U-C-7)@fi))
  2504.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-8)=(ref-call 0)@fi)
  2505.      (@if-using(U-C-8) set ref-class 8 ref-viewer-1 return-from-macro @use not(U-C-8)@fi))
  2506.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-9)=(ref-call 0)@fi)
  2507.      (@if-using(U-C-9) set ref-class 9 ref-viewer-1 return-from-macro @use not(U-C-9)@fi))
  2508.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-10)=(ref-call 0)@fi)
  2509.      (@if-using(U-C-10) set ref-class 10 ref-viewer-1 return-from-macro @use not(U-C-10)@fi))
  2510.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-11)=(ref-call 0)@fi)
  2511.      (@if-using(U-C-11) set ref-class 11 ref-viewer-1 return-from-macro @use not(U-C-11)@fi))
  2512.    (pre(set ref-call -(ref-call 2))or(0 @if-using(U-C-13)=(ref-call 0)@fi)
  2513.      (@if-using(U-C-13) set ref-class 13 ref-viewer-1 return-from-macro @use not(U-C-13)@fi))
  2514.    (pre(set ref-call -(ref-call 18))or(0 @if-using(U-C-31)=(ref-call 0)@fi)
  2515.      (@if-using(U-C-31) set ref-class 31 ref-viewer-1 return-from-macro @use not(U-C-31)@fi))
  2516.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-32)=(ref-call 0)@fi)
  2517.      (@if-using(U-C-32) set ref-class 32 ref-viewer-1 return-from-macro @use not(U-C-32)@fi))
  2518.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-33)=(ref-call 0)@fi)
  2519.      (@if-using(U-C-33) set ref-class 33 ref-viewer-1 return-from-macro @use not(U-C-33)@fi))
  2520.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-34)=(ref-call 0)@fi)
  2521.      (@if-using(U-C-34) set ref-class 34 ref-viewer-1 return-from-macro @use not(U-C-34)@fi))
  2522.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-35)=(ref-call 0)@fi)
  2523.      (@if-using(U-C-35) set ref-class 35 ref-viewer-1 return-from-macro @use not(U-C-35)@fi))
  2524.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-36)=(ref-call 0)@fi)
  2525.      (@if-using(U-C-36) set ref-class 36 ref-viewer-1 return-from-macro @use not(U-C-36)@fi))
  2526.    (pre(set ref-call -(ref-call 2))or(0 @if-using(U-C-38)=(ref-call 0)@fi)
  2527.      (@if-using(U-C-38) set ref-class 38 ref-viewer-1 return-from-macro @use not(U-C-38)@fi))
  2528.    (pre(set ref-call -(ref-call 2))or(0 @if-using(U-C-40)=(ref-call 0)@fi)
  2529.      (@if-using(U-C-40) set ref-class 40 ref-viewer-1 return-from-macro @use not(U-C-40)@fi))
  2530.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-41)=(ref-call 0)@fi)
  2531.      (@if-using(U-C-41) set ref-class 41 ref-viewer-1 return-from-macro @use not(U-C-41)@fi))
  2532.    (pre(set ref-call -(ref-call 3))or(0 @if-using(U-C-44)=(ref-call 0)@fi)
  2533.      (@if-using(U-C-44) set ref-class 44 ref-viewer-1 return-from-macro @use not(U-C-44)@fi))
  2534.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-45)=(ref-call 0)@fi)
  2535.      (@if-using(U-C-45) set ref-class 45 ref-viewer-1 return-from-macro @use not(U-C-45)@fi))
  2536.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-46)=(ref-call 0)@fi)
  2537.      (@if-using(U-C-46) set ref-class 46 ref-viewer-1 return-from-macro @use not(U-C-46)@fi))
  2538.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-47)=(ref-call 0)@fi)
  2539.      (@if-using(U-C-47) set ref-class 47 ref-viewer-1 return-from-macro @use not(U-C-47)@fi))
  2540.    (pre(set ref-call -(ref-call 2))or(0 @if-using(U-C-49)=(ref-call 0)@fi)
  2541.      (@if-using(U-C-49) set ref-class 49 ref-viewer-1 return-from-macro @use not(U-C-49)@fi))
  2542.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-50)=(ref-call 0)@fi)
  2543.      (@if-using(U-C-50) set ref-class 50 ref-viewer-1 return-from-macro @use not(U-C-50)@fi))
  2544.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-51)=(ref-call 0)@fi)
  2545.      (@if-using(U-C-51) set ref-class 51 ref-viewer-1 return-from-macro @use not(U-C-51)@fi))
  2546.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-52)=(ref-call 0)@fi)
  2547.      (@if-using(U-C-52) set ref-class 52 ref-viewer-1 return-from-macro @use not(U-C-52)@fi))
  2548.    (pre(set ref-call -(ref-call 2))or(0 @if-using(U-C-54)=(ref-call 0)@fi)
  2549.      (@if-using(U-C-54) set ref-class 54 ref-viewer-1 return-from-macro @use not(U-C-54)@fi))
  2550.    (pre(set ref-call -(ref-call 2))or(0 @if-using(U-C-56)=(ref-call 0)@fi)
  2551.      (@if-using(U-C-56) set ref-class 56 ref-viewer-1 return-from-macro @use not(U-C-56)@fi))
  2552.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-57)=(ref-call 0)@fi)
  2553.      (@if-using(U-C-57) set ref-class 57 ref-viewer-1 return-from-macro @use not(U-C-57)@fi))
  2554.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-58)=(ref-call 0)@fi)
  2555.      (@if-using(U-C-58) set ref-class 58 ref-viewer-1 return-from-macro @use not(U-C-58)@fi))
  2556.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-59)=(ref-call 0)@fi)
  2557.      (@if-using(U-C-59) set ref-class 59 ref-viewer-1 return-from-macro @use not(U-C-59)@fi))
  2558.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-60)=(ref-call 0)@fi)
  2559.      (@if-using(U-C-60) set ref-class 60 ref-viewer-1 return-from-macro @use not(U-C-60)@fi))
  2560.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-61)=(ref-call 0)@fi)
  2561.      (@if-using(U-C-61) set ref-class 61 ref-viewer-1 return-from-macro @use not(U-C-61)@fi))
  2562.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-62)=(ref-call 0)@fi)
  2563.      (@if-using(U-C-62) set ref-class 62 ref-viewer-1 return-from-macro @use not(U-C-62)@fi))
  2564.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-63)=(ref-call 0)@fi)
  2565.      (@if-using(U-C-63) set ref-class 63 ref-viewer-1 return-from-macro @use not(U-C-63)@fi))
  2566.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-64)=(ref-call 0)@fi)
  2567.      (@if-using(U-C-64) set ref-class 64 ref-viewer-1 return-from-macro @use not(U-C-64)@fi))
  2568.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-65)=(ref-call 0)@fi)
  2569.      (@if-using(U-C-65) set ref-class 65 ref-viewer-1 return-from-macro @use not(U-C-65)@fi))
  2570.    (pre(set ref-call -(ref-call 2))or(0 @if-using(U-C-67)=(ref-call 0)@fi)
  2571.      (@if-using(U-C-67) set ref-class 67 ref-viewer-1 return-from-macro @use not(U-C-67)@fi))
  2572.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-68)=(ref-call 0)@fi)
  2573.      (@if-using(U-C-68) set ref-class 68 ref-viewer-1 return-from-macro @use not(U-C-68)@fi))
  2574.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-69)=(ref-call 0)@fi)
  2575.      (@if-using(U-C-69) set ref-class 69 ref-viewer-1 return-from-macro @use not(U-C-69)@fi))
  2576.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-70)=(ref-call 0)@fi)
  2577.      (@if-using(U-C-70) set ref-class 70 ref-viewer-1 return-from-macro @use not(U-C-70)@fi))
  2578.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-71)=(ref-call 0)@fi)
  2579.      (@if-using(U-C-71) set ref-class 71 ref-viewer-1 return-from-macro @use not(U-C-71)@fi))
  2580.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-72)=(ref-call 0)@fi)
  2581.      (@if-using(U-C-72) set ref-class 72 ref-viewer-1 return-from-macro @use not(U-C-72)@fi))
  2582.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-73)=(ref-call 0)@fi)
  2583.      (@if-using(U-C-73) set ref-class 73 ref-viewer-1 return-from-macro @use not(U-C-73)@fi))
  2584.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-74)=(ref-call 0)@fi)
  2585.      (@if-using(U-C-74) set ref-class 74 ref-viewer-1 return-from-macro @use not(U-C-74)@fi))
  2586.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-75)=(ref-call 0)@fi)
  2587.      (@if-using(U-C-75) set ref-class 75 ref-viewer-1 return-from-macro @use not(U-C-75)@fi))
  2588.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-76)=(ref-call 0)@fi)
  2589.      (@if-using(U-C-76) set ref-class 76 ref-viewer-1 return-from-macro @use not(U-C-76)@fi))
  2590.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-77)=(ref-call 0)@fi)
  2591.      (@if-using(U-C-77) set ref-class 77 ref-viewer-1 return-from-macro @use not(U-C-77)@fi))
  2592.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-78)=(ref-call 0)@fi)
  2593.      (@if-using(U-C-78) set ref-class 78 ref-viewer-1 return-from-macro @use not(U-C-78)@fi))
  2594.    (pre(set ref-call -(ref-call 2))or(0 @if-using(U-C-80)=(ref-call 0)@fi)
  2595.      (@if-using(U-C-80) set ref-class 80 ref-viewer-1 return-from-macro @use not(U-C-80)@fi))
  2596.    (pre(set ref-call -(ref-call 2))or(0 @if-using(U-C-82)=(ref-call 0)@fi)
  2597.      (@if-using(U-C-82) set ref-class 82 ref-viewer-1 return-from-macro @use not(U-C-82)@fi))
  2598.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-83)=(ref-call 0)@fi)
  2599.      (@if-using(U-C-83) set ref-class 83 ref-viewer-1 return-from-macro @use not(U-C-83)@fi))
  2600.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-84)=(ref-call 0)@fi)
  2601.      (@if-using(U-C-84) set ref-class 84 ref-viewer-1 return-from-macro @use not(U-C-84)@fi))
  2602.    (pre(set ref-call -(ref-call 2))or(0 @if-using(U-C-86)=(ref-call 0)@fi)
  2603.      (@if-using(U-C-86) set ref-class 86 ref-viewer-1 return-from-macro @use not(U-C-86)@fi))
  2604.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-87)=(ref-call 0)@fi)
  2605.      (@if-using(U-C-87) set ref-class 87 ref-viewer-1 return-from-macro @use not(U-C-87)@fi))
  2606.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-88)=(ref-call 0)@fi)
  2607.      (@if-using(U-C-88) set ref-class 88 ref-viewer-1 return-from-macro @use not(U-C-88)@fi))
  2608.    (pre(set ref-call -(ref-call 2))or(0 @if-using(U-C-90)=(ref-call 0)@fi)
  2609.      (@if-using(U-C-90) set ref-class 90 ref-viewer-1 return-from-macro @use not(U-C-90)@fi))
  2610.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-91)=(ref-call 0)@fi)
  2611.      (@if-using(U-C-91) set ref-class 91 ref-viewer-1 return-from-macro @use not(U-C-91)@fi))
  2612.    (pre(set ref-call -(ref-call 2))or(0 @if-using(U-C-93)=(ref-call 0)@fi)
  2613.      (@if-using(U-C-93) set ref-class 93 ref-viewer-1 return-from-macro @use not(U-C-93)@fi))
  2614.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-94)=(ref-call 0)@fi)
  2615.      (@if-using(U-C-94) set ref-class 94 ref-viewer-1 return-from-macro @use not(U-C-94)@fi))
  2616.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-95)=(ref-call 0)@fi)
  2617.      (@if-using(U-C-95) set ref-class 95 ref-viewer-1 return-from-macro @use not(U-C-95)@fi))
  2618.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-96)=(ref-call 0)@fi)
  2619.      (@if-using(U-C-96) set ref-class 96 ref-viewer-1 return-from-macro @use not(U-C-96)@fi))
  2620.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-97)=(ref-call 0)@fi)
  2621.      (@if-using(U-C-97) set ref-class 97 ref-viewer-1 return-from-macro @use not(U-C-97)@fi))
  2622.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-98)=(ref-call 0)@fi)
  2623.      (@if-using(U-C-98) set ref-class 98 ref-viewer-1 return-from-macro @use not(U-C-98)@fi))
  2624.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-99)=(ref-call 0)@fi)
  2625.      (@if-using(U-C-99) set ref-class 99 ref-viewer-1 return-from-macro @use not(U-C-99)@fi))
  2626.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-100)=(ref-call 0)@fi)
  2627.      (@if-using(U-C-100) set ref-class 100 ref-viewer-1 return-from-macro @use not(U-C-100)@fi))
  2628.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-101)=(ref-call 0)@fi)
  2629.      (@if-using(U-C-101) set ref-class 101 ref-viewer-1 return-from-macro @use not(U-C-101)@fi))
  2630.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-102)=(ref-call 0)@fi)
  2631.      (@if-using(U-C-102) set ref-class 102 ref-viewer-1 return-from-macro @use not(U-C-102)@fi))
  2632.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-103)=(ref-call 0)@fi)
  2633.      (@if-using(U-C-103) set ref-class 103 ref-viewer-1 return-from-macro @use not(U-C-103)@fi))
  2634.    (pre(set ref-call -(ref-call 2))or(0 @if-using(U-C-105)=(ref-call 0)@fi)
  2635.      (@if-using(U-C-105) set ref-class 105 ref-viewer-1 return-from-macro @use not(U-C-105)@fi))
  2636.    (pre(set ref-call -(ref-call 6))or(0 @if-using(U-C-111)=(ref-call 0)@fi)
  2637.      (@if-using(U-C-111) set ref-class 111 ref-viewer-1 return-from-macro @use not(U-C-111)@fi))
  2638.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-112)=(ref-call 0)@fi)
  2639.      (@if-using(U-C-112) set ref-class 112 ref-viewer-1 return-from-macro @use not(U-C-112)@fi))
  2640.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-113)=(ref-call 0)@fi)
  2641.      (@if-using(U-C-113) set ref-class 113 ref-viewer-1 return-from-macro @use not(U-C-113)@fi))
  2642.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-114)=(ref-call 0)@fi)
  2643.      (@if-using(U-C-114) set ref-class 114 ref-viewer-1 return-from-macro @use not(U-C-114)@fi))
  2644.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-115)=(ref-call 0)@fi)
  2645.      (@if-using(U-C-115) set ref-class 115 ref-viewer-1 return-from-macro @use not(U-C-115)@fi))
  2646.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-116)=(ref-call 0)@fi)
  2647.      (@if-using(U-C-116) set ref-class 116 ref-viewer-1 return-from-macro @use not(U-C-116)@fi))
  2648.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-117)=(ref-call 0)@fi)
  2649.      (@if-using(U-C-117) set ref-class 117 ref-viewer-1 return-from-macro @use not(U-C-117)@fi))
  2650.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-118)=(ref-call 0)@fi)
  2651.      (@if-using(U-C-118) set ref-class 118 ref-viewer-1 return-from-macro @use not(U-C-118)@fi))
  2652.    (pre(set ref-call -(ref-call 2))or(0 @if-using(U-C-120)=(ref-call 0)@fi)
  2653.      (@if-using(U-C-120) set ref-class 120 ref-viewer-1 return-from-macro @use not(U-C-120)@fi))
  2654.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-121)=(ref-call 0)@fi)
  2655.      (@if-using(U-C-121) set ref-class 121 ref-viewer-1 return-from-macro @use not(U-C-121)@fi))
  2656.    (pre(set ref-call -(ref-call 2))or(0 @if-using(U-C-123)=(ref-call 0)@fi)
  2657.      (@if-using(U-C-123) set ref-class 123 ref-viewer-1 return-from-macro @use not(U-C-123)@fi))
  2658.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-124)=(ref-call 0)@fi)
  2659.      (@if-using(U-C-124) set ref-class 124 ref-viewer-1 return-from-macro @use not(U-C-124)@fi))
  2660.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-125)=(ref-call 0)@fi)
  2661.      (@if-using(U-C-125) set ref-class 125 ref-viewer-1 return-from-macro @use not(U-C-125)@fi))
  2662.    (pre(set ref-call -(ref-call 3))or(0 @if-using(U-C-128)=(ref-call 0)@fi)
  2663.      (@if-using(U-C-128) set ref-class 128 ref-viewer-1 return-from-macro @use not(U-C-128)@fi))
  2664.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-129)=(ref-call 0)@fi)
  2665.      (@if-using(U-C-129) set ref-class 129 ref-viewer-1 return-from-macro @use not(U-C-129)@fi))
  2666.   default(local(c-1)(
  2667.    @if-using( ref-viewer-0-0-USED ref-viewer-1-0-USED ref-viewer-0-1-USED ref-viewer-1-1-USED )set ref-n 1 @fi
  2668.   case
  2669.    (pre(set ref-call -(ref-call -113))or(0 @if-using(U-C-16)=(ref-call 0)@fi)
  2670.      (@if-using(U-C-16) set c-1 11 set ref-class 16 ref-viewer-1 return-from-macro @use not(U-C-16)@fi))
  2671.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-17)=(ref-call 0)@fi)
  2672.      (@if-using(U-C-17) set c-1 11 set ref-class 17 ref-viewer-1 return-from-macro @use not(U-C-17)@fi))
  2673.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-18)=(ref-call 0)@fi)
  2674.      (@if-using(U-C-18) set c-1 11 set ref-class 18 ref-viewer-1 return-from-macro @use not(U-C-18)@fi))
  2675.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-19)=(ref-call 0)@fi)
  2676.      (@if-using(U-C-19) set c-1 11 set ref-class 19 ref-viewer-1 return-from-macro @use not(U-C-19)@fi))
  2677.    (pre(set ref-call -(ref-call 7))or(0 @if-using(U-C-26)=(ref-call 0)@fi)
  2678.      (@if-using(U-C-26) set c-1 11 set ref-class 26 ref-viewer-1 return-from-macro @use not(U-C-26)@fi))
  2679.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-27)=(ref-call 0)@fi)
  2680.      (@if-using(U-C-27) set c-1 11 set ref-class 27 ref-viewer-1 return-from-macro @use not(U-C-27)@fi))
  2681.    (pre(set ref-call -(ref-call 12))or(0 @if-using(U-C-39)=(ref-call 0)@fi)
  2682.      (@if-using(U-C-39) set c-1 40 set ref-class 39 ref-viewer-1 return-from-macro @use not(U-C-39)@fi))
  2683.    (pre(set ref-call -(ref-call 42))or(0 @if-using(U-C-81)=(ref-call 0)@fi)
  2684.      (@if-using(U-C-81) set c-1 82 set ref-class 81 ref-viewer-1 return-from-macro @use not(U-C-81)@fi))
  2685.    (pre(set ref-call -(ref-call 26))or(0 @if-using(U-C-107)=(ref-call 0)@fi)
  2686.      (@if-using(U-C-107) set c-1 5 set ref-class 107 ref-viewer-1 return-from-macro @use not(U-C-107)@fi))
  2687.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-108)=(ref-call 0)@fi)
  2688.      (@if-using(U-C-108) set c-1 5 set ref-class 108 ref-viewer-1 return-from-macro @use not(U-C-108)@fi))
  2689.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-109)=(ref-call 0)@fi)
  2690.      (@if-using(U-C-109) set c-1 5 set ref-class 109 ref-viewer-1 return-from-macro @use not(U-C-109)@fi))
  2691.    (pre(set ref-call -(ref-call 10))or(0 @if-using(U-C-119)=(ref-call 0)@fi)
  2692.      (@if-using(U-C-119) set c-1 5 set ref-class 119 ref-viewer-1 return-from-macro @use not(U-C-119)@fi))
  2693.    (pre(set ref-call -(ref-call 8))or(0 @if-using(U-C-127)=(ref-call 0)@fi)
  2694.      (@if-using(U-C-127) set c-1 128 set ref-class 127 ref-viewer-1 return-from-macro @use not(U-C-127)@fi))
  2695.   default(local(c-2)(
  2696.    @if-using( ref-viewer-0-0-USED ref-viewer-1-0-USED ref-viewer-0-1-USED ref-viewer-1-1-USED ref-viewer-0-2-USED ref-viewer-1-2-USED )set ref-n 2 @fi
  2697.   case
  2698.    (pre(set ref-call -(ref-call -125))or(0 @if-using(U-C-2)=(ref-call 0)@fi)
  2699.      (@if-using(U-C-2) set c-1 3 set c-2 4 set ref-class 2 ref-viewer-1 return-from-macro @use not(U-C-2)@fi))
  2700.    (pre(set ref-call -(ref-call 12))or(0 @if-using(U-C-14)=(ref-call 0)@fi)
  2701.      (@if-using(U-C-14) set c-1 11 set c-2 13 set ref-class 14 ref-viewer-1 return-from-macro @use not(U-C-14)@fi))
  2702.    (pre(set ref-call -(ref-call 7))or(0 @if-using(U-C-21)=(ref-call 0)@fi)
  2703.      (@if-using(U-C-21) set c-1 11 set c-2 13 set ref-class 21 ref-viewer-1 return-from-macro @use not(U-C-21)@fi))
  2704.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-22)=(ref-call 0)@fi)
  2705.      (@if-using(U-C-22) set c-1 11 set c-2 13 set ref-class 22 ref-viewer-1 return-from-macro @use not(U-C-22)@fi))
  2706.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-23)=(ref-call 0)@fi)
  2707.      (@if-using(U-C-23) set c-1 11 set c-2 13 set ref-class 23 ref-viewer-1 return-from-macro @use not(U-C-23)@fi))
  2708.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-24)=(ref-call 0)@fi)
  2709.      (@if-using(U-C-24) set c-1 11 set c-2 13 set ref-class 24 ref-viewer-1 return-from-macro @use not(U-C-24)@fi))
  2710.    (pre(set ref-call -(ref-call 4))or(0 @if-using(U-C-28)=(ref-call 0)@fi)
  2711.      (@if-using(U-C-28) set c-1 11 set c-2 13 set ref-class 28 ref-viewer-1 return-from-macro @use not(U-C-28)@fi))
  2712.    (pre(set ref-call -(ref-call 1))or(0 @if-using(U-C-29)=(ref-call 0)@fi)
  2713.      (@if-using(U-C-29) set c-1 11 set c-2 13 set ref-class 29 ref-viewer-1 return-from-macro @use not(U-C-29)@fi))
  2714.    (pre(set ref-call -(ref-call 13))or(0 @if-using(U-C-42)=(ref-call 0)@fi)
  2715.      (@if-using(U-C-42) set c-1 43 set c-2 47 set ref-class 42 ref-viewer-1 return-from-macro @use not(U-C-42)@fi))
  2716.    (pre(set ref-call -(ref-call 47))or(0 @if-using(U-C-89)=(ref-call 0)@fi)
  2717.      (@if-using(U-C-89) set c-1 90 set c-2 49 set ref-class 89 ref-viewer-1 return-from-macro @use not(U-C-89)@fi))
  2718.   default(ref-case-fun-0)esac))esac))esac )))
  2719. (forward ref-case-fun-1)
  2720. (deffun ref-case-fun-0(
  2721.   case
  2722.    (pre(set ref-call -(ref-call 37))or(0 @if-using(U-C-126)=(ref-call 0)@fi)
  2723.      (@if-using(U-C-126) set c-1 127 set c-2 129 set ref-class 126 ref-viewer-1 return-from-macro @use not(U-C-126)@fi))
  2724.   default(local(c-3)(
  2725.    @if-using( ref-viewer-0-0-USED ref-viewer-1-0-USED ref-viewer-0-1-USED ref-viewer-1-1-USED ref-viewer-0-2-USED ref-viewer-1-2-USED ref-viewer-0-3-USED ref-viewer-1-3-USED )set ref-n 3 @fi
  2726.   case
  2727.    (pre(set ref-call -(ref-call -89))or(0 @if-using(U-C-37)=(ref-call 0)@fi)
  2728.      (@if-using(U-C-37) set c-1 38 set c-2 39 set c-3 41 set ref-class 37 ref-viewer-1 return-from-macro @use not(U-C-37)@fi))
  2729.    (pre(set ref-call -(ref-call 6))or(0 @if-using(U-C-43)=(ref-call 0)@fi)
  2730.      (@if-using(U-C-43) set c-1 44 set c-2 45 set c-3 46 set ref-class 43 ref-viewer-1 return-from-macro @use not(U-C-43)@fi))
  2731.    (pre(set ref-call -(ref-call 36))or(0 @if-using(U-C-79)=(ref-call 0)@fi)
  2732.      (@if-using(U-C-79) set c-1 80 set c-2 81 set c-3 83 set ref-class 79 ref-viewer-1 return-from-macro @use not(U-C-79)@fi))
  2733.    (pre(set ref-call -(ref-call 6))or(0 @if-using(U-C-85)=(ref-call 0)@fi)
  2734.      (@if-using(U-C-85) set c-1 86 set c-2 87 set c-3 88 set ref-class 85 ref-viewer-1 return-from-macro @use not(U-C-85)@fi))
  2735.    (pre(set ref-call -(ref-call 21))or(0 @if-using(U-C-106)=(ref-call 0)@fi)
  2736.      (@if-using(U-C-106) set c-1 107 set c-2 108 set c-3 109 set ref-class 106 ref-viewer-1 return-from-macro @use not(U-C-106)@fi))
  2737.    (pre(set ref-call -(ref-call 4))or(0 @if-using(U-C-110)=(ref-call 0)@fi)
  2738.      (@if-using(U-C-110) set c-1 111 set c-2 112 set c-3 113 set ref-class 110 ref-viewer-1 return-from-macro @use not(U-C-110)@fi))
  2739.    (pre(set ref-call -(ref-call 12))or(0 @if-using(U-C-122)=(ref-call 0)@fi)
  2740.      (@if-using(U-C-122) set c-1 123 set c-2 124 set c-3 125 set ref-class 122 ref-viewer-1 return-from-macro @use not(U-C-122)@fi))
  2741.   default(local(c-4)(
  2742.    @if-using( ref-viewer-0-0-USED ref-viewer-1-0-USED ref-viewer-0-1-USED ref-viewer-1-1-USED ref-viewer-0-2-USED ref-viewer-1-2-USED ref-viewer-0-3-USED ref-viewer-1-3-USED ref-viewer-0-4-USED ref-viewer-1-4-USED )set ref-n 4 @fi
  2743.   case
  2744.    (pre(set ref-call -(ref-call -107))or(0 @if-using(U-C-15)=(ref-call 0)@fi)
  2745.      (@if-using(U-C-15) set c-1 16 set c-2 17 set c-3 18 set c-4 19 set ref-class 15 ref-viewer-1 return-from-macro @use not(U-C-15)@fi))
  2746.    (pre(set ref-call -(ref-call 5))or(0 @if-using(U-C-20)=(ref-call 0)@fi)
  2747.      (@if-using(U-C-20) set c-1 21 set c-2 22 set c-3 23 set c-4 24 set ref-class 20 ref-viewer-1 return-from-macro @use not(U-C-20)@fi))
  2748.    (pre(set ref-call -(ref-call 5))or(0 @if-using(U-C-25)=(ref-call 0)@fi)
  2749.      (@if-using(U-C-25) set c-1 26 set c-2 27 set c-3 28 set c-4 29 set ref-class 25 ref-viewer-1 return-from-macro @use not(U-C-25)@fi))
  2750.    (pre(set ref-call -(ref-call 5))or(0 @if-using(U-C-30)=(ref-call 0)@fi)
  2751.      (@if-using(U-C-30) set c-1 31 set c-2 32 set c-3 33 set c-4 34 set ref-class 30 ref-viewer-1 return-from-macro @use not(U-C-30)@fi))
  2752.   default(local(c-5)(
  2753.    @if-using( ref-viewer-0-0-USED ref-viewer-1-0-USED ref-viewer-0-1-USED ref-viewer-1-1-USED ref-viewer-0-2-USED ref-viewer-1-2-USED ref-viewer-0-3-USED ref-viewer-1-3-USED ref-viewer-0-4-USED ref-viewer-1-4-USED ref-viewer-0-5-USED ref-viewer-1-5-USED )set ref-n 5 @fi
  2754.   case
  2755.    (pre(set ref-call -(ref-call -29))or(0 @if-using(U-C-1)=(ref-call 0)@fi)
  2756.      (@if-using(U-C-1) set c-1 2 set c-2 5 set c-3 11 set c-4 12 set c-5 36 set ref-class 1 ref-viewer-1 return-from-macro @use not(U-C-1)@fi))
  2757.    (pre(set ref-call -(ref-call 4))or(0 @if-using(U-C-5)=(ref-call 0)@fi)
  2758.      (@if-using(U-C-5) set c-1 6 set c-2 7 set c-3 8 set c-4 9 set c-5 10 set ref-class 5 ref-viewer-1 return-from-macro @use not(U-C-5)@fi))
  2759.   default(local(c-6)(
  2760.    @if-using( ref-viewer-0-0-USED ref-viewer-1-0-USED ref-viewer-0-1-USED ref-viewer-1-1-USED ref-viewer-0-2-USED ref-viewer-1-2-USED ref-viewer-0-3-USED ref-viewer-1-3-USED ref-viewer-0-4-USED ref-viewer-1-4-USED ref-viewer-0-5-USED ref-viewer-1-5-USED ref-viewer-0-6-USED ref-viewer-1-6-USED )set ref-n 6 @fi
  2761.   case
  2762.   default(local(c-7)(
  2763.    @if-using( ref-viewer-0-0-USED ref-viewer-1-0-USED ref-viewer-0-1-USED ref-viewer-1-1-USED ref-viewer-0-2-USED ref-viewer-1-2-USED ref-viewer-0-3-USED ref-viewer-1-3-USED ref-viewer-0-4-USED ref-viewer-1-4-USED ref-viewer-0-5-USED ref-viewer-1-5-USED ref-viewer-0-6-USED ref-viewer-1-6-USED ref-viewer-0-7-USED ref-viewer-1-7-USED )set ref-n 7 @fi
  2764.   case
  2765.    (pre(set ref-call -(ref-call 7))or(0 @if-using(U-C-12)=(ref-call 0)@fi)
  2766.      (@if-using(U-C-12) set c-1 13 set c-2 14 set c-3 15 set c-4 20 set c-5 25 set c-6 30 set c-7 35 set ref-class 12 ref-viewer-1 return-from-macro @use not(U-C-12)@fi))
  2767.    (pre(set ref-call -(ref-call 36))or(0 @if-using(U-C-48)=(ref-call 0)@fi)
  2768.      (@if-using(U-C-48) set c-1 49 set c-2 47 set c-3 43 set c-4 50 set c-5 51 set c-6 52 set c-7 53 set ref-class 48 ref-viewer-1 return-from-macro @use not(U-C-48)@fi))
  2769.   default(local(c-8)(
  2770.    @if-using( ref-viewer-0-0-USED ref-viewer-1-0-USED ref-viewer-0-1-USED ref-viewer-1-1-USED ref-viewer-0-2-USED ref-viewer-1-2-USED ref-viewer-0-3-USED ref-viewer-1-3-USED ref-viewer-0-4-USED ref-viewer-1-4-USED ref-viewer-0-5-USED ref-viewer-1-5-USED ref-viewer-0-6-USED ref-viewer-1-6-USED ref-viewer-0-7-USED ref-viewer-1-7-USED ref-viewer-0-8-USED ref-viewer-1-8-USED )set ref-n 8 @fi
  2771.   case
  2772.   default(local(c-9)(
  2773.    @if-using( ref-viewer-0-0-USED ref-viewer-1-0-USED ref-viewer-0-1-USED ref-viewer-1-1-USED ref-viewer-0-2-USED ref-viewer-1-2-USED ref-viewer-0-3-USED ref-viewer-1-3-USED ref-viewer-0-4-USED ref-viewer-1-4-USED ref-viewer-0-5-USED ref-viewer-1-5-USED ref-viewer-0-6-USED ref-viewer-1-6-USED ref-viewer-0-7-USED ref-viewer-1-7-USED ref-viewer-0-8-USED ref-viewer-1-8-USED ref-viewer-0-9-USED ref-viewer-1-9-USED )set ref-n 9 @fi
  2774.   case
  2775.   default(local(c-10)(
  2776.    @if-using( ref-viewer-0-0-USED ref-viewer-1-0-USED ref-viewer-0-1-USED ref-viewer-1-1-USED ref-viewer-0-2-USED ref-viewer-1-2-USED ref-viewer-0-3-USED ref-viewer-1-3-USED ref-viewer-0-4-USED ref-viewer-1-4-USED ref-viewer-0-5-USED ref-viewer-1-5-USED ref-viewer-0-6-USED ref-viewer-1-6-USED ref-viewer-0-7-USED ref-viewer-1-7-USED ref-viewer-0-8-USED ref-viewer-1-8-USED ref-viewer-0-9-USED ref-viewer-1-9-USED ref-viewer-0-10-USED ref-viewer-1-10-USED )set ref-n 10 @fi
  2777.   case
  2778.    (pre(set ref-call -(ref-call 7))or(0 @if-using(U-C-55)=(ref-call 0)@fi)
  2779.      (@if-using(U-C-55) set c-1 56 set c-2 57 set c-3 58 set c-4 59 set c-5 60 set c-6 61 set c-7 62 set c-8 63 set c-9 64 set c-10 65 set ref-class 55 ref-viewer-1 return-from-macro @use not(U-C-55)@fi))
  2780.   default(local(c-11)(
  2781.    @if-using( ref-viewer-0-0-USED ref-viewer-1-0-USED ref-viewer-0-1-USED ref-viewer-1-1-USED ref-viewer-0-2-USED ref-viewer-1-2-USED ref-viewer-0-3-USED ref-viewer-1-3-USED ref-viewer-0-4-USED ref-viewer-1-4-USED ref-viewer-0-5-USED ref-viewer-1-5-USED ref-viewer-0-6-USED ref-viewer-1-6-USED ref-viewer-0-7-USED ref-viewer-1-7-USED ref-viewer-0-8-USED ref-viewer-1-8-USED ref-viewer-0-9-USED ref-viewer-1-9-USED ref-viewer-0-10-USED ref-viewer-1-10-USED ref-viewer-0-11-USED ref-viewer-1-11-USED )set ref-n 11 @fi
  2782.   case
  2783.    (pre(set ref-call -(ref-call 11))or(0 @if-using(U-C-66)=(ref-call 0)@fi)
  2784.      (@if-using(U-C-66) set c-1 67 set c-2 68 set c-3 69 set c-4 70 set c-5 71 set c-6 72 set c-7 73 set c-8 74 set c-9 75 set c-10 76 set c-11 77 set ref-class 66 ref-viewer-1 return-from-macro @use not(U-C-66)@fi))
  2785.    (pre(set ref-call -(ref-call 26))or(0 @if-using(U-C-92)=(ref-call 0)@fi)
  2786.      (@if-using(U-C-92) set c-1 93 set c-2 94 set c-3 95 set c-4 96 set c-5 97 set c-6 98 set c-7 99 set c-8 100 set c-9 101 set c-10 102 set c-11 103 set ref-class 92 ref-viewer-1 return-from-macro @use not(U-C-92)@fi))
  2787.    (pre(set ref-call -(ref-call 12))or(0 @if-using(U-C-104)=(ref-call 0)@fi)
  2788.      (@if-using(U-C-104) set c-1 105 set c-2 106 set c-3 110 set c-4 114 set c-5 115 set c-6 116 set c-7 117 set c-8 118 set c-9 119 set c-10 120 set c-11 121 set ref-class 104 ref-viewer-1 return-from-macro @use not(U-C-104)@fi))
  2789.   default(local(c-12)(
  2790.    @if-using( ref-viewer-0-0-USED ref-viewer-1-0-USED ref-viewer-0-1-USED ref-viewer-1-1-USED ref-viewer-0-2-USED ref-viewer-1-2-USED ref-viewer-0-3-USED ref-viewer-1-3-USED ref-viewer-0-4-USED ref-viewer-1-4-USED ref-viewer-0-5-USED ref-viewer-1-5-USED ref-viewer-0-6-USED ref-viewer-1-6-USED ref-viewer-0-7-USED ref-viewer-1-7-USED ref-viewer-0-8-USED ref-viewer-1-8-USED ref-viewer-0-9-USED ref-viewer-1-9-USED ref-viewer-0-10-USED ref-viewer-1-10-USED ref-viewer-0-11-USED ref-viewer-1-11-USED ref-viewer-0-12-USED ref-viewer-1-12-USED )set ref-n 12 @fi
  2791.   case
  2792.   default(local(c-13)(
  2793.    @if-using( ref-viewer-0-0-USED ref-viewer-1-0-USED ref-viewer-0-1-USED ref-viewer-1-1-USED ref-viewer-0-2-USED ref-viewer-1-2-USED ref-viewer-0-3-USED ref-viewer-1-3-USED ref-viewer-0-4-USED ref-viewer-1-4-USED ref-viewer-0-5-USED ref-viewer-1-5-USED ref-viewer-0-6-USED ref-viewer-1-6-USED ref-viewer-0-7-USED ref-viewer-1-7-USED ref-viewer-0-8-USED ref-viewer-1-8-USED ref-viewer-0-9-USED ref-viewer-1-9-USED ref-viewer-0-10-USED ref-viewer-1-10-USED ref-viewer-0-11-USED ref-viewer-1-11-USED ref-viewer-0-12-USED ref-viewer-1-12-USED ref-viewer-0-13-USED ref-viewer-1-13-USED )set ref-n 13 @fi
  2794.   case
  2795.    (pre(set ref-call -(ref-call -51))or(0 @if-using(U-C-53)=(ref-call 0)@fi)
  2796.      (@if-using(U-C-53) set c-1 54 set c-2 55 set c-3 66 set c-4 78 set c-5 79 set c-6 84 set c-7 85 set c-8 89 set c-9 91 set c-10 92 set c-11 104 set c-12 122 set c-13 126 set ref-class 53 ref-viewer-1 return-from-macro @use not(U-C-53)@fi))
  2797.   default(ref-case-fun-1)esac))esac))esac))esac))esac))esac))esac))esac))esac))esac))esac))esac))
  2798. (deffun ref-case-fun-1(message ("invalid "  "input! )set ref-call 0))
  2799. (deffun ref-abort-unload(load-function not(ref-case-fun ref-case-fun-0 ref-case-fun-1
  2800. @if-using( ref-viewer-0-16-USED ref-viewer-0-15-USED ref-viewer-0-14-USED ref-viewer-0-13-USED ref-viewer-0-12-USED ref-viewer-0-11-USED ref-viewer-0-10-USED ref-viewer-0-9-USED ref-viewer-0-8-USED ref-viewer-0-7-USED ref-viewer-0-6-USED ref-viewer-0-5-USED ref-viewer-0-4-USED ref-viewer-0-3-USED ref-viewer-0-2-USED ref-viewer-0-1-USED ref-viewer-0-0-USED )ref-viewer-0 @fi
  2801. @if-using( ref-viewer-1-21-USED ref-viewer-1-20-USED ref-viewer-1-19-USED ref-viewer-1-18-USED ref-viewer-1-17-USED ref-viewer-1-16-USED ref-viewer-1-15-USED ref-viewer-1-14-USED ref-viewer-1-13-USED ref-viewer-1-12-USED ref-viewer-1-11-USED ref-viewer-1-10-USED ref-viewer-1-9-USED ref-viewer-1-8-USED ref-viewer-1-7-USED ref-viewer-1-6-USED ref-viewer-1-5-USED ref-viewer-1-4-USED ref-viewer-1-3-USED ref-viewer-1-2-USED ref-viewer-1-1-USED ref-viewer-1-0-USED )ref-viewer-1 @fi
  2802. )))
  2803. @if-using not(ABORT-HOOK-ADD)@use (ABORT-HOOK-ADD)( defmac abort-hook-add ( ) )@fi
  2804. (defmac abort-hook-add-saved(abort-hook-add))(undeclare(abort-hook-add))
  2805. (defmac abort-hook-add(set modify-behaviour 0))(undeclare(abort-hook-add-saved))
  2806. (undeclare(ref-case-fun ref-class ref-n c-1 c-2 c-3 c-4 c-5 c-6 c-7 c-8 c-9 c-10 c-11 c-12 c-13 c-14 c-15 c-16 c-17 c-18 c-19 c-20 c-21 ref-case-fun-0 ref-case-fun-1 ref-abort-unload
  2807. @if-using( ref-viewer-0-16-USED ref-viewer-0-15-USED ref-viewer-0-14-USED ref-viewer-0-13-USED ref-viewer-0-12-USED ref-viewer-0-11-USED ref-viewer-0-10-USED ref-viewer-0-9-USED ref-viewer-0-8-USED ref-viewer-0-7-USED ref-viewer-0-6-USED ref-viewer-0-5-USED ref-viewer-0-4-USED ref-viewer-0-3-USED ref-viewer-0-2-USED ref-viewer-0-1-USED ref-viewer-0-0-USED )ref-viewer-0 @fi
  2808. @if-using( ref-viewer-1-21-USED ref-viewer-1-20-USED ref-viewer-1-19-USED ref-viewer-1-18-USED ref-viewer-1-17-USED ref-viewer-1-16-USED ref-viewer-1-15-USED ref-viewer-1-14-USED ref-viewer-1-13-USED ref-viewer-1-12-USED ref-viewer-1-11-USED ref-viewer-1-10-USED ref-viewer-1-9-USED ref-viewer-1-8-USED ref-viewer-1-7-USED ref-viewer-1-6-USED ref-viewer-1-5-USED ref-viewer-1-4-USED ref-viewer-1-3-USED ref-viewer-1-2-USED ref-viewer-1-1-USED ref-viewer-1-0-USED )ref-viewer-1 @fi
  2809. ))
  2810. ))
  2811. @fi
  2812. @use not( 
  2813.  ref-viewer-0-16-USED ref-viewer-0-15-USED ref-viewer-0-14-USED ref-viewer-0-13-USED ref-viewer-0-12-USED ref-viewer-0-11-USED ref-viewer-0-10-USED ref-viewer-0-9-USED ref-viewer-0-8-USED ref-viewer-0-7-USED ref-viewer-0-6-USED ref-viewer-0-5-USED ref-viewer-0-4-USED ref-viewer-0-3-USED ref-viewer-0-2-USED ref-viewer-0-1-USED ref-viewer-0-0-USED
  2814.  ref-viewer-1-21-USED ref-viewer-1-20-USED ref-viewer-1-19-USED ref-viewer-1-18-USED ref-viewer-1-17-USED ref-viewer-1-16-USED ref-viewer-1-15-USED ref-viewer-1-14-USED ref-viewer-1-13-USED ref-viewer-1-12-USED ref-viewer-1-11-USED ref-viewer-1-10-USED ref-viewer-1-9-USED ref-viewer-1-8-USED ref-viewer-1-7-USED ref-viewer-1-6-USED ref-viewer-1-5-USED ref-viewer-1-4-USED ref-viewer-1-3-USED ref-viewer-1-2-USED ref-viewer-1-1-USED ref-viewer-1-0-USED
  2815. )
  2816. @use( file-reference sokoban-call-ref regexp-reference cmd-reference)
  2817. @if-using(tags-mac-reference-file-REF)
  2818. @reference-begin
  2819. .ad l
  2820. .TL
  2821. tags-mac-reference-file
  2822. @reference-end
  2823. @fi
  2824. @if-using ( complete )
  2825. @if-using(tags-mac-reference-file-REF)
  2826. @reference-begin
  2827. .sp
  2828. .LP
  2829. \fB1 Description\fP
  2830. @reference-end
  2831. @fi
  2832. @if-using ( complete )
  2833. @if-using(tags-mac-reference-file-REF)
  2834. @reference-begin
  2835. .LP
  2836. This is a libary file, supporting the standard (vi-known) tags file for
  2837. moving to other positions and tag-completion!
  2838. .LP
  2839. This package can only be  used,  if  Origami  is  compiled  to  support
  2840. regular expressions\&.
  2841. .sp
  2842. .LP
  2843. \fB1.1 conditional compilation\fP
  2844. .LP
  2845. If this package is included more than once, all needed tags have to  be
  2846. defined at the first include! The following tags can be set:
  2847. .TS
  2848. center box tab();
  2849. l | l.
  2850. TagFunction
  2851. _
  2852. E-G-T-ABUFFenter-and-go-tags-adjacent-buffer
  2853. E-G-T-BUFFenter-and-go-tags-buffer
  2854. E-O-T-ABUFFenter-and-open-tags-adjacent-buffer
  2855. E-O-T-BUFFenter-and-open-tags-buffer
  2856. F-G-T-ABUFFfind-and-go-tags-adjacent-buffer
  2857. F-G-T-BUFFfind-and-go-tags-buffer
  2858. F-O-T-ABUFFfind-and-open-tags-adjacent-buffer
  2859. F-O-T-BUFFfind-and-open-tags-buffer
  2860. FE-G-T-ABUFFfind-or-enter-and-go-tags-adjacent-buffer
  2861. FE-G-T-BUFFfind-or-enter-and-go-tags-buffer
  2862. FE-O-T-ABUFFfind-or-enter-and-open-tags-adjacent-buffer
  2863. FE-O-T-BUFFfind-or-enter-and-open-tags-buffer
  2864. GO-TAG-MARKgo-tag-mark
  2865. I-T-FILEinsert-tags-file
  2866. O-T-AFILEopen-adjacent-buffer-tags-file
  2867. O-T-FILEopen-buffer-tags-file
  2868. Q-U-G-T-BUFFquit-unchanged-to-other-buffer
  2869. S-N-I-Tsearch-next-incorrect-tag-entry
  2870. S-U-T-FILEset-user-tag
  2871. T-COMPtag-completion
  2872. .TE
  2873. .LP
  2874. If your filesystems uses special names for  absolut  filenames,  define
  2875. the tag ROOT-TEST and a function,  returning true, if the word starting
  2876. at current cursor position is an absolute filename\&.
  2877. .br
  2878. .sp
  2879. .LP
  2880. \fB1.2 error/message return\fP
  2881. .LP
  2882. The OCL-variable tags-error contains the error/message coding  for  the
  2883. tags actions:
  2884. .TS
  2885. center box tab();
  2886. l | l.
  2887. ValueError/Message
  2888. _
  2889. 0ok
  2890. 1tagged file edited more than once
  2891. 2no tag iven
  2892. 3cannot open tags-file
  2893. 4no valid tag in tags-file
  2894. 5cannot open tagged file
  2895. 6tag notfound in tagged file
  2896. 7File edted only once
  2897. 8Currentbuffer is changed
  2898. 9position not found in other buffer (folds entered)
  2899. 10position not found in other buffer
  2900. 11using yur tags file first
  2901. 12using dfault tags files
  2902. 13Sorry, o regular expressions!
  2903. *unspecified error
  2904. .TE
  2905. .br
  2906. @reference-end
  2907. @fi
  2908. @fi
  2909. @if-using(tags-mac-reference-file-REF)
  2910. @reference-begin
  2911. .br
  2912. @reference-end
  2913. @fi
  2914. @fi
  2915. @if-using ( complete file-reference )
  2916. @if-using(tags-mac-reference-file-REF)
  2917. @reference-begin
  2918. .sp
  2919. .LP
  2920. \fB2 Tags file\fP
  2921. @reference-end
  2922. @fi
  2923. @if-using ( complete file-reference )
  2924. @if-using(tags-mac-reference-file-REF)
  2925. @reference-begin
  2926. .LP
  2927. If you want to use the tags facilities, Origami needs to read a special
  2928. tags file\&. The functions try to use the first of the following files:
  2929. .TS
  2930. center box tab();
  2931. l.
  2932. File
  2933. _
  2934. directory-of-file/tags or file/tags (*)
  2935. tags
  2936. ~/tags
  2937. ~/\&.oritags
  2938. .TE
  2939. .IP "* " 
  2940. depending on the type of the current file\&.
  2941. .LP
  2942. During the editor session, you can specify  another  tags  file,  using
  2943. function set-user-tags-file\&.
  2944. .LP
  2945. Entries in the tags file are normal tags entries:
  2946. .sp
  2947. .LP
  2948. \fB2.1 tag filename search-exp\fP
  2949. .TS
  2950. center box tab();
  2951. l | l.
  2952. ItemMeaning
  2953. _
  2954. tagname of a tag, a string
  2955. filenamea string
  2956. search-exp/^text$/
  2957. ?^text$?
  2958. /^text/
  2959. ?^text?
  2960. /text$/
  2961. ?text$?
  2962. /text/
  2963. ?text?
  2964. .TE
  2965. .LP
  2966. These entries might be produced by ctags!
  2967. .br
  2968. .sp
  2969. .LP
  2970. \fB2.2 tag filename line-number\fP
  2971. .TS
  2972. center box tab();
  2973. l | l.
  2974. ItemMeaning
  2975. _
  2976. tagname of a tag, a string
  2977. filenamea string
  2978. line-numbera sequence of digits 0\&.\&.9
  2979. .TE
  2980. .LP
  2981. These entries might be produced by ctags!
  2982. .br
  2983. .sp
  2984. .LP
  2985. \fB2.3 tag file Bexpression\fP
  2986. .TS
  2987. center box tab();
  2988. l | l.
  2989. ItemMeaning
  2990. _
  2991. tagname of a tag, a string
  2992. filenamea string
  2993. expressiona basic-regular search expression
  2994. .TE
  2995. .LP
  2996. These entries are an extension to the standard tags syntax!
  2997. .br
  2998. .sp
  2999. .LP
  3000. \fB2.4 tag file Eexpression\fP
  3001. .TS
  3002. center box tab();
  3003. l | l.
  3004. ItemMeaning
  3005. _
  3006. tagname of a tag, a string
  3007. filenamea string
  3008. expressiona extended-regular search expression
  3009. .TE
  3010. .LP
  3011. These entries are an extension to the standard tag syntax!
  3012. .br
  3013. .sp
  3014. .LP
  3015. \fB2.5 string\fP
  3016. .LP
  3017. `tag-completion' reads only the first word on the lines\&. So a line
  3018. containing a simple string can be used to add keywords for tag-completion!
  3019. Such short entries cannot be used for jumping to a tagged position!
  3020. .br
  3021. @reference-end
  3022. @fi
  3023. @fi
  3024. @if-using(tags-mac-reference-file-REF)
  3025. @reference-begin
  3026. .br
  3027. @reference-end
  3028. @fi
  3029. @fi
  3030. @if-using ( complete find-open-ref find-aopen-ref enter-open-ref enter-aopen-ref find-go-ref find-ago-ref enter-go-ref enter-ago-ref fe-open-ref fe-aopen-ref fe-go-ref fe-ago-ref go-tag-mark-ref )
  3031. @if-using(tags-mac-reference-file-REF)
  3032. @reference-begin
  3033. .sp
  3034. .LP
  3035. \fB3 Tags\fP
  3036. @reference-end
  3037. @fi
  3038. @if-using ( complete find-open-ref find-aopen-ref enter-open-ref enter-aopen-ref find-go-ref find-ago-ref enter-go-ref enter-ago-ref fe-open-ref fe-aopen-ref fe-go-ref fe-ago-ref go-tag-mark-ref )
  3039. @if-using(tags-mac-reference-file-REF)
  3040. @reference-begin
  3041. .LP
  3042. Tags are defined using two character sets:
  3043. .IP "c-tags-x-word-set / c-tags-word-set " 
  3044. tag names are buildt using only these characters,
  3045. c-tags-x-word-set is only used, if language None is active\&.
  3046. .IP "c-tags-start-word-set: " 
  3047. first character has to be in this set
  3048. .LP
  3049. Default values are:
  3050. .LP
  3051. .DS
  3052. ( defset c-tags-start-word-set ( alpha ) )
  3053. ( defset c-tags-word-set ( alpha digit "_ ) )
  3054. ( defset c-tags-x-word-set ( c-tags-word-set "- ) )
  3055. .DE
  3056.  
  3057. Changing these sets at runtime, changes  the  tag-search  algorythm!
  3058. c-tags-start-word-set has to be a subset of c-tags-word-set!
  3059. @reference-end
  3060. @fi
  3061. @fi
  3062. @if-using(tags-mac-reference-file-REF)
  3063. @reference-begin
  3064. .br
  3065. @reference-end
  3066. @fi
  3067. @fi
  3068. @if-using ( complete quit-unchanged-ref find-go-ref find-ago-ref enter-go-ref enter-ago-ref fe-go-ref fe-ago-ref go-tag-mark-ref find-open-ref find-aopen-ref enter-open-ref enter-aopen-ref find-go-ref find-ago-ref enter-go-ref enter-ago-ref fe-open-ref fe-aopen-ref fe-go-ref fe-ago-ref go-tag-mark-ref set-tf-ref in-tf-ref o-tf-ref ao-tf-ref tag-completion )
  3069. @if-using(tags-mac-reference-file-REF)
  3070. @reference-begin
  3071. .sp
  3072. .LP
  3073. \fB4 Functions and macros\fP
  3074. @reference-end
  3075. @fi
  3076. @if-using ( complete quit-unchanged-ref find-go-ref find-ago-ref enter-go-ref enter-ago-ref fe-go-ref fe-ago-ref go-tag-mark-ref )
  3077. @if-using(tags-mac-reference-file-REF)
  3078. @reference-begin
  3079. .sp
  3080. .LP
  3081. \fB4.1 quit-unchanged-to-other-buffer\fP
  3082. .LP
  3083. If the current buffer contains a  unchanged  file,  also  edited  in
  3084. other buffer[s], the  macro  tries to reach the same position in the
  3085. other  buffer\&.  Searching with a regular expression for the  current
  3086. line does not exit entered folds!
  3087. .br
  3088. @reference-end
  3089. @fi
  3090. @fi
  3091. @if-using ( complete find-open-ref find-aopen-ref enter-open-ref enter-aopen-ref find-go-ref find-ago-ref enter-go-ref enter-ago-ref fe-open-ref fe-aopen-ref fe-go-ref fe-ago-ref go-tag-mark-ref )
  3092. @if-using ( complete go-tag-mark-ref )
  3093. @if-using(tags-mac-reference-file-REF)
  3094. @reference-begin
  3095. .sp
  3096. .LP
  3097. \fB4.2 go-tag-mark\fP
  3098. .LP
  3099. This is the function, used by all enter/find tags commands\&. It  uses
  3100. three boolean arguments:
  3101. .IP "adjacent " 
  3102. open buffer adjacent
  3103. .IP "unique " 
  3104. switch to existing buffer, if possible
  3105. .IP "extend " 
  3106. is tags given as prefix
  3107. .LP
  3108. It uses the last value in search-history\&.
  3109. .LP
  3110. See also in 3 Tags\&.
  3111. .LP
  3112. See also in 4.1 quit-unchanged-to-other-buffer\&.
  3113. .br
  3114. @reference-end
  3115. @fi
  3116. @fi
  3117. @if-using ( complete find-open-ref find-aopen-ref enter-open-ref enter-aopen-ref )
  3118. @if-using(tags-mac-reference-file-REF)
  3119. @reference-begin
  3120. .sp
  3121. .LP
  3122. \fB4.3 open tags buffer\fP
  3123. @reference-end
  3124. @fi
  3125. @if-using ( find-open-ref )
  3126. @if-using(tags-mac-reference-file-REF)
  3127. @reference-begin
  3128. .sp
  3129. .LP
  3130. \fB4.3.1 find-and-open-tags-buffer\fP
  3131. .LP
  3132. Open a new buffer, using the word under the cursor as tag\&.
  3133. .LP
  3134. See also in 3 Tags\&.
  3135. .br
  3136. @reference-end
  3137. @fi
  3138. @fi
  3139. @if-using ( find-aopen-ref )
  3140. @if-using(tags-mac-reference-file-REF)
  3141. @reference-begin
  3142. .sp
  3143. .LP
  3144. \fB4.3.2 find-and-open-tags-adjacent-buffer\fP
  3145. .LP
  3146. Open a new adjacent buffer, using the word under the cursor as tag\&.
  3147. .LP
  3148. See also in 3 Tags\&.
  3149. .br
  3150. @reference-end
  3151. @fi
  3152. @fi
  3153. @if-using ( enter-open-ref )
  3154. @if-using(tags-mac-reference-file-REF)
  3155. @reference-begin
  3156. .sp
  3157. .LP
  3158. \fB4.3.3 enter-and-open-tags-buffer\fP
  3159. .LP
  3160. Open  a  new  buffer  for  a  tag,  the  macros  prompt  for\&.  Using
  3161. filename-completion will end the input and searches the  first  tag,
  3162. beginning with the given string!
  3163. .LP
  3164. See also in 3 Tags\&.
  3165. .LP
  3166. enter-and-open-tags-buffer calls the  hooks  begin-prompt-macro  and
  3167. end-prompt-macro, so they have to be defined here, if you need them!
  3168. .br
  3169. @reference-end
  3170. @fi
  3171. @fi
  3172. @if-using ( enter-aopen-ref )
  3173. @if-using(tags-mac-reference-file-REF)
  3174. @reference-begin
  3175. .sp
  3176. .LP
  3177. \fB4.3.4 enter-and-open-tags-adjacent-buffer\fP
  3178. .LP
  3179. Open a new adjacent buffer for a tag, the macros prompt  for\&.  Using
  3180. filename-completion will end the input and  searches  the first tag,
  3181. beginning with the given string!
  3182. .LP
  3183. See also in 3 Tags\&.
  3184. .LP
  3185. enter-and-open-tags-adjacent     buffer     calls     the      hooks
  3186. begin-prompt-macro and end-prompt-macro, so they have to be  defined
  3187. here, if you need them!
  3188. .br
  3189. @reference-end
  3190. @fi
  3191. @fi
  3192. @if-using(tags-mac-reference-file-REF)
  3193. @reference-begin
  3194. .br
  3195. @reference-end
  3196. @fi
  3197. @fi
  3198. @if-using ( complete find-go-ref find-ago-ref enter-go-ref enter-ago-ref )
  3199. @if-using(tags-mac-reference-file-REF)
  3200. @reference-begin
  3201. .sp
  3202. .LP
  3203. \fB4.4 go tags buffer\fP
  3204. @reference-end
  3205. @fi
  3206. @if-using ( find-go-ref )
  3207. @if-using(tags-mac-reference-file-REF)
  3208. @reference-begin
  3209. .sp
  3210. .LP
  3211. \fB4.4.1 find-and-go-tags-buffer\fP
  3212. .LP
  3213. Open a new buffer, using the word under the  cursor  as  tag\&.  Tries
  3214. quit-unchanged-to-other-buffer-ref to reduce the number of buffers\&.
  3215. .LP
  3216. See also in 3 Tags\&.
  3217. .LP
  3218. See also in 4.1 quit-unchanged-to-other-buffer\&.
  3219. .br
  3220. @reference-end
  3221. @fi
  3222. @fi
  3223. @if-using ( find-ago-ref )
  3224. @if-using(tags-mac-reference-file-REF)
  3225. @reference-begin
  3226. .sp
  3227. .LP
  3228. \fB4.4.2 find-and-go-tags-adjacent-buffer\fP
  3229. .LP
  3230. Open a new adjacent buffer, using the word under the cursor as  tag\&.
  3231. Tries quit-unchanged-to-other-buffer-ref to  reduce  the  number  of
  3232. buffers\&.
  3233. .LP
  3234. See also in 3 Tags\&.
  3235. .LP
  3236. See also in 4.1 quit-unchanged-to-other-buffer\&.
  3237. .br
  3238. @reference-end
  3239. @fi
  3240. @fi
  3241. @if-using ( enter-go-ref )
  3242. @if-using(tags-mac-reference-file-REF)
  3243. @reference-begin
  3244. .sp
  3245. .LP
  3246. \fB4.4.3 enter-and-go-tags-buffer\fP
  3247. .LP
  3248. Open  a  new  buffer  for  a  tag,  the  macros  prompt  for\&.  Using
  3249. filename-completion will end the input and searches the  first  tag,
  3250. beginning with the given string!
  3251. .LP
  3252. Tries quit-unchanged-to-other-buffer-ref to  reduce  the  number  of
  3253. buffers\&.
  3254. .LP
  3255. See also in 3 Tags\&.
  3256. .LP
  3257. See also in 4.1 quit-unchanged-to-other-buffer\&.
  3258. .LP
  3259. enter-and-go-tags-buffer  calls  the  hooks  begin-prompt-macro  and
  3260. end-prompt-macro, so they have to be defined here, if you need them!
  3261. .br
  3262. @reference-end
  3263. @fi
  3264. @fi
  3265. @if-using ( enter-ago-ref )
  3266. @if-using(tags-mac-reference-file-REF)
  3267. @reference-begin
  3268. .sp
  3269. .LP
  3270. \fB4.4.4 enter-and-go-tags-adjacent-buffer\fP
  3271. .LP
  3272. Open  a  new  buffer  for  a  tag,  the  macros  prompt  for\&.  Using
  3273. filename-completion will end the input and searches the  first  tag,
  3274. beginning with the given string!
  3275. .LP
  3276. Tries quit-unchanged-to-other-buffer-ref to reduce the number  of
  3277. buffers\&.
  3278. .LP
  3279. See also in 3 Tags\&.
  3280. .LP
  3281. See also in 4.1 quit-unchanged-to-other-buffer\&.
  3282. .LP
  3283. enter-and-go-tags-adjacent-buffer calls the hooks begin-prompt-macro
  3284. and end-prompt-macro, so they have to be defined here, if  you  need
  3285. them!
  3286. .br
  3287. @reference-end
  3288. @fi
  3289. @fi
  3290. @if-using(tags-mac-reference-file-REF)
  3291. @reference-begin
  3292. .br
  3293. @reference-end
  3294. @fi
  3295. @fi
  3296. @if-using ( complete fe-open-ref fe-aopen-ref fe-go-ref fe-ago-ref)
  3297. @if-using(tags-mac-reference-file-REF)
  3298. @reference-begin
  3299. .sp
  3300. .LP
  3301. \fB4.5 find or enter tags buffer\fP
  3302. @reference-end
  3303. @fi
  3304. @if-using ( fe-open-ref )
  3305. @if-using(tags-mac-reference-file-REF)
  3306. @reference-begin
  3307. .sp
  3308. .LP
  3309. \fB4.5.1 find-or-enter-and-open-tags-buffer\fP
  3310. .LP
  3311. Open a new buffer for a tag, using the word  under  the  cursor\&.  If
  3312. failling, the macros prompts for  a  tag\&.  Using filename-completion
  3313. will end the input  and  searches  the first tag, beginning with the
  3314. given string!
  3315. .LP
  3316. See also in 3 Tags\&.
  3317. .LP
  3318. find-or-enter-and-open-tags-buffer     calls        the        hooks
  3319. begin-prompt-macro and end-prompt-macro, so  they have to be defined
  3320. here, if you need them!
  3321. .br
  3322. @reference-end
  3323. @fi
  3324. @fi
  3325. @if-using ( fe-aopen-ref )
  3326. @if-using(tags-mac-reference-file-REF)
  3327. @reference-begin
  3328. .sp
  3329. .LP
  3330. \fB4.5.2 find-or-enter-and-open-tags-adjacent-buffer\fP
  3331. .LP
  3332. Open a new adjacent buffer for a  tag,  using  the  word  under  the
  3333. cursor\&.  If  failling,   the   macros   prompts  for  a  tag\&.  Using
  3334. filename-completion  will end the input and searches the first  tag,
  3335. beginning with the given string!
  3336. .LP
  3337. See also in 3 Tags\&.
  3338. .LP
  3339. find-or-enter-and-open-tags-adjacent-buffer   calls    the     hooks
  3340. begin-prompt-macro and end-prompt-macro, so they  have to be defined
  3341. here, if you need them!
  3342. .br
  3343. @reference-end
  3344. @fi
  3345. @fi
  3346. @if-using ( fe-go-ref )
  3347. @if-using(tags-mac-reference-file-REF)
  3348. @reference-begin
  3349. .sp
  3350. .LP
  3351. \fB4.5.3 find-or-enter-and-go-tags-buffer\fP
  3352. .LP
  3353. Open a new buffer for a tag, using the word  under  the  cursor\&.  If
  3354. failling, the macros prompts for  a  tag\&.  Using filename-completion
  3355. will end the input  and  searches  the first tag, beginning with the
  3356. given string!
  3357. .LP
  3358. Tries quit-unchanged-to-other-buffer-ref to  reduce  the  number  of
  3359. buffers\&.
  3360. .LP
  3361. See also in 3 Tags\&.
  3362. .LP
  3363. See also in 4.1 quit-unchanged-to-other-buffer\&.
  3364. .LP
  3365. find-or-enter-and-go-tags-buffer calls the hooks  begin-prompt-macro
  3366. and end-prompt-macro, so they have to  be  defined here, if you need
  3367. them!
  3368. .br
  3369. @reference-end
  3370. @fi
  3371. @fi
  3372. @if-using ( fe-ago-ref )
  3373. @if-using(tags-mac-reference-file-REF)
  3374. @reference-begin
  3375. .sp
  3376. .LP
  3377. \fB4.5.4 find-or-enter-and-go-tags-adjacent-buffer\fP
  3378. .LP
  3379. Open a new adjacent buffer for a  tag,  using  the  word  under  the
  3380. cursor\&.  If  failling,   the   macros   prompts  for  a  tag\&.  Using
  3381. filename-completion  will end the input and searches the first  tag,
  3382. beginning with the given string!
  3383. .LP
  3384. Tries quit-unchanged-to-other-buffer-ref to  reduce  the  number  of
  3385. buffers\&.
  3386. .LP
  3387. See also in 3 Tags\&.
  3388. .LP
  3389. See also in 4.1 quit-unchanged-to-other-buffer\&.
  3390. .LP
  3391. find-or-enter-and-go-tags-adjacent-buffer    calls     the     hooks
  3392. begin-prompt-macro and end-prompt-macro,  so they have to be defined
  3393. here, if you need them!
  3394. .br
  3395. @reference-end
  3396. @fi
  3397. @fi
  3398. @if-using(tags-mac-reference-file-REF)
  3399. @reference-begin
  3400. .br
  3401. @reference-end
  3402. @fi
  3403. @fi
  3404. @fi
  3405. @if-using ( complete set-tf-ref in-tf-ref o-tf-ref ao-tf-ref )
  3406. @if-using ( complete set-tf-ref in-tf-ref o-tf-ref ao-tf-ref )
  3407. @if-using(tags-mac-reference-file-REF)
  3408. @reference-begin
  3409. .sp
  3410. .LP
  3411. \fB4.6 handling tags file\fP
  3412. @reference-end
  3413. @fi
  3414. @if-using ( set-tf-ref )
  3415. @if-using(tags-mac-reference-file-REF)
  3416. @reference-begin
  3417. .sp
  3418. .LP
  3419. \fB4.6.1 set-user-tag\fP
  3420. .LP
  3421. Don't use the default  tags-file,  but  define  your  own\&.  You  can
  3422. control the  first  tags file by other funtions, setting the history
  3423. tags-file to the correct filename\&. This history will be used, if OCL
  3424. variable tags-user-tags-file is not set to false=0!
  3425. .br
  3426. @reference-end
  3427. @fi
  3428. @fi
  3429. @if-using ( in-tf-ref )
  3430. @if-using(tags-mac-reference-file-REF)
  3431. @reference-begin
  3432. .sp
  3433. .LP
  3434. \fB4.6.2 insert-tags-file\fP
  3435. .LP
  3436. Like insert-file, but does not prompt for a filename\&.
  3437. .br
  3438. @reference-end
  3439. @fi
  3440. @fi
  3441. @if-using ( o-tf-ref )
  3442. @if-using(tags-mac-reference-file-REF)
  3443. @reference-begin
  3444. .sp
  3445. .LP
  3446. \fB4.6.3 open-buffer-tags-file\fP
  3447. .LP
  3448. Like open-buffer, but does not prompt for a  filename\&.  If  no  tags
  3449. file can be reached, the command will be ignored\&.
  3450. .br
  3451. @reference-end
  3452. @fi
  3453. @fi
  3454. @if-using ( ao-tf-ref )
  3455. @if-using(tags-mac-reference-file-REF)
  3456. @reference-begin
  3457. .sp
  3458. .LP
  3459. \fB4.6.4 open-adjacent-buffer-tags-file\fP
  3460. .LP
  3461. Like open-adjacent-buffer, but does not prompt for a filename\&. If no
  3462. tags file can be reached, the command will be ignored\&.
  3463. .br
  3464. @reference-end
  3465. @fi
  3466. @fi
  3467. @if-using(tags-mac-reference-file-REF)
  3468. @reference-begin
  3469. .br
  3470. @reference-end
  3471. @fi
  3472. @fi
  3473. @fi
  3474. @if-using ( complete tag-completion )
  3475. @if-using(tags-mac-reference-file-REF)
  3476. @reference-begin
  3477. .sp
  3478. .LP
  3479. \fB4.7 tag-completion\fP
  3480. .LP
  3481. Similar to origamis filename-completion\&. This function looks only at
  3482. the tag names\&. You may add your own symbols  for  completion\&.  These
  3483. entries may be lines containing only the completion string!
  3484. .LP
  3485. This function can not be used inside prompts!
  3486. .br
  3487. @reference-end
  3488. @fi
  3489. @fi
  3490. @if-using(tags-mac-reference-file-REF)
  3491. @reference-begin
  3492. .br
  3493. @reference-end
  3494. @fi
  3495. @fi
  3496. @if-using ( complete )
  3497. @if-using(tags-mac-reference-file-REF)
  3498. @reference-begin
  3499. .sp
  3500. .LP
  3501. \fB5 Hooks\fP
  3502. @reference-end
  3503. @fi
  3504. @if-using ( complete )
  3505. @if-using(tags-mac-reference-file-REF)
  3506. @reference-begin
  3507. .LP
  3508. The libary defines a macro `abort-hook-add' and a OCL tag
  3509. ABORT-HOOK-ADD\&. This macro should be added to your abort-macro! If
  3510. needed, an existing macro `abort-hook-add' will be integrated!
  3511. .LP
  3512. The function `set-user-tags-file' can be simulated, by changing the
  3513. value of history `tags-file' and setting variable `tags-user-tags-file'
  3514. to non-zero\&. If `tags-user-tags-file' is zero, the default list is
  3515. used\&.
  3516. @reference-end
  3517. @fi
  3518. @fi
  3519. @if-using(tags-mac-reference-file-REF)
  3520. @reference-begin
  3521. .br
  3522. @reference-end
  3523. @fi
  3524. @fi
  3525. @if-using(tags-mac-reference-file-REF)
  3526. @reference-begin
  3527. .br
  3528. @reference-end
  3529. @fi
  3530. @if-using(sokoban-reference-file-REF)
  3531. @reference-begin
  3532. .ad l
  3533. .TL
  3534. sokoban-reference-file
  3535. @reference-end
  3536. @fi
  3537. @if-using ( complete )
  3538. @if-using(sokoban-reference-file-REF)
  3539. @reference-begin
  3540. .sp
  3541. .LP
  3542. \fB1 Description\fP
  3543. @reference-end
  3544. @fi
  3545. @if-using ( complete )
  3546. @if-using(sokoban-reference-file-REF)
  3547. @reference-begin
  3548. .LP
  3549. This library defines  a  function  for  playing  the  well  known  game
  3550. `Sokoban'\&. Therefor  the file `~/\&.orisokoban' is used to store the game
  3551. boards\&. The  file  will be generated automatically with language Inmos,
  3552. to prevent  problems with different fold marks\&. Each level is stored in
  3553. a fold, using the following coding:
  3554. .IP "# " 
  3555. wall
  3556. .IP "\&. " 
  3557. base
  3558. .IP "$ " 
  3559. stone
  3560. .IP "* " 
  3561. stone on base
  3562. .IP "@ " 
  3563. cursor
  3564. .IP "+ " 
  3565. cursor on base
  3566. .LP
  3567. The library defines a own keyboard\&. So it can only be used for bindings
  3568. with multiple modes\&.  The mode is named `sokoban-kbd'\&.  The functions
  3569. .LP
  3570. .DS
  3571.    soko-go-or-push-up, soko-run-or-push-up, soko-run-up
  3572.    soko-go-or-push-down, soko-run-or-push-down, soko-run-down
  3573.    soko-go-or-push-left, soko-run-or-push-left, soko-run-left
  3574.    soko-go-or-push-right, soko-run-or-push-right, soko-run-right
  3575. .DE
  3576.  
  3577. are not undeclared, so they can be bound  to  your  cursor  keys\&.  This
  3578. library uses only the vi based bindings (hjkl)\&.
  3579. .LP
  3580. You have to define a function `SOKOBAN-RESET-KBD', which resets the
  3581. keytables to your default table\&.
  3582. @reference-end
  3583. @fi
  3584. @fi
  3585. @if-using(sokoban-reference-file-REF)
  3586. @reference-begin
  3587. .br
  3588. @reference-end
  3589. @fi
  3590. @fi
  3591. @if-using ( complete sokoban-call-ref )
  3592. @if-using(sokoban-reference-file-REF)
  3593. @reference-begin
  3594. .sp
  3595. .LP
  3596. \fB2 Functions and macros\fP
  3597. @reference-end
  3598. @fi
  3599. @if-using ( complete sokoban-call-ref )
  3600. @if-using(sokoban-reference-file-REF)
  3601. @reference-begin
  3602. .sp
  3603. .LP
  3604. \fB2.1 sokoban\fP
  3605. .LP
  3606. You can play the well known game\&. You have to push the pakets to the
  3607. bases\&. Bases are marked with `\&.'\&. Pakets are marked with `$', or `S'
  3608. on bases\&. Running or pushing through walls (`#') is not possible\&.
  3609. .TS
  3610. center box tab();
  3611. l | l | l.
  3612. FunctionKeyComment
  3613. _
  3614. go-or-push-upk
  3615. run-or-push-upKrepeat and stop at wall
  3616. run-upC-Krepeat and stop at wall or paket
  3617. go-or-push-downj
  3618. run-or-push-downJrepeat and stop at wall
  3619. run-downC-Jrepeat and stop at wall or paket
  3620. go-or-push-lefth
  3621. run-or-push-leftHrepeat and stop at wall
  3622. run-leftC-Hrepeat and stop at wall or paket
  3623. go-or-push-rightl
  3624. run-or-push-rightLrepeat and stop at wall
  3625. run-rightC-Lrepeat and stop at wall or paket
  3626. undo-last-moveuif repeated, only the last one
  3627.  
  3628. next-level+level has not to be solved
  3629. previous-level-
  3630. savesnot over different editing sessions
  3631. resetrto last save or start, if no save
  3632. restart-levelRto start
  3633.  
  3634. quitq
  3635. describe-bindings?
  3636. .TE
  3637. .LP
  3638. Starting a level calls save automatically!
  3639. .br
  3640. @reference-end
  3641. @fi
  3642. @fi
  3643. @if-using(sokoban-reference-file-REF)
  3644. @reference-begin
  3645. .br
  3646. @reference-end
  3647. @fi
  3648. @fi
  3649. @if-using ( complete )
  3650. @if-using(sokoban-reference-file-REF)
  3651. @reference-begin
  3652. .sp
  3653. .LP
  3654. \fB3 Hooks\fP
  3655. @reference-end
  3656. @fi
  3657. @if-using ( complete )
  3658. @if-using(sokoban-reference-file-REF)
  3659. @reference-begin
  3660. .LP
  3661. The libary defines a macro `abort-hook-add' and a OCL tag ABORT-HOOK-ADD\&.
  3662. This macro should be added to your abort-macro! If needed, an existing
  3663. macro `abort-hook-add' will be integrated!
  3664. .LP
  3665. The libary functions are marked as demand-loading\&.
  3666. .LP
  3667. If you do not wnt to use the default file `~/\&.orisokoban', define the tag
  3668. and function SOKOBAN-FILE\&.
  3669. @reference-end
  3670. @fi
  3671. @fi
  3672. @if-using(sokoban-reference-file-REF)
  3673. @reference-begin
  3674. .br
  3675. @reference-end
  3676. @fi
  3677. @fi
  3678. @if-using(sokoban-reference-file-REF)
  3679. @reference-begin
  3680. .br
  3681. @reference-end
  3682. @fi
  3683. @if-using(CommonUsedReferences-REF)
  3684. @reference-begin
  3685. .ad l
  3686. .TL
  3687. CommonUsedReferences
  3688. @reference-end
  3689. @fi
  3690. @if-using ( regexp-reference )
  3691. @if-using(CommonUsedReferences-REF)
  3692. @reference-begin
  3693. .sp
  3694. .LP
  3695. \fB1 Origami Regular Expressions\fP
  3696. .LP
  3697. Origami supports regular expression search and replace\&. The syntax widely
  3698. conforms POSIX extended or basic regular expressions\&.
  3699. .sp
  3700. .LP
  3701. \fB1.1 Character Match\fP
  3702. .TS
  3703. center box tab();
  3704. l | l | l.
  3705. BasicExtendedMatches
  3706. _
  3707. <char><char><char>, if not a special character
  3708. \e<char>\e<char><char>, if a special character
  3709. \&.\&.any character
  3710. ^^start of line, if at begin of exp\&.
  3711. $$end of line, if at end of exp\&.
  3712. [<class>]<class>]any char in <class>
  3713. [^<class>]^<class>]any char not in <class>
  3714. <class> is a list of
  3715. ) <char>
  3716. ) <char>-<char>
  3717. ) [:<set>:] (*)
  3718. .TE
  3719. .IP "(*) " 
  3720. <set> can be `alpha', `upper', `lower', `digit', `xdigit', `alnum',
  3721. `blank', `space', `print', `cntrl', `graph' or `punct'\&.
  3722. See your local ctype documentation for detailed information\&.
  3723. .br
  3724. .sp
  3725. .LP
  3726. \fB1.2 Complex Expressions\fP
  3727. .TS
  3728. center box tab();
  3729. l | l | l.
  3730. BasicExtendedMatches(*)
  3731. _
  3732. <e1> <e2><e1> <e2>concatenation of strings <s1> <s2>
  3733. \e(<e>\e)(<e>)<s>, used for grouping and \ex in replacement
  3734. <e1>\e|<e2><e1>|<e2><s1> or <s2>
  3735. <e>\e+<e>+one or more strings, matching <e>
  3736. <e>\e?<e>?zero on one string, matching <e>
  3737. <e>*<e>*zero or more strings, matching <e>
  3738. <e>\e{<n>\e}<e>{<n>}<n> strings, matching <e>
  3739. <e>\e{<n>,<m>\e}<e>{<n>,<m>}<n> to <m> strings, matching <e>
  3740. \e!<e>!<e>if at begin of line:
  3741. next line, not matching <e>
  3742. .TE
  3743. .IP "(*) " 
  3744. <e>,<e1> and <e2> are regular expressions and strings <s>,<s1> and <s2>
  3745. are strings, matching the corresponding expressions\&. <n> and <m> are integers\&.
  3746. .br
  3747. .sp
  3748. .LP
  3749. \fB1.3 Replace Expressions\fP
  3750. .LP
  3751. In regular expression replace, the following special expressions are allowed
  3752. (any character, not used for special purpose, can be used for itself):
  3753. .TS
  3754. center box tab();
  3755. l | l.
  3756. ExpressionMeaning(*)
  3757. _
  3758. \e<x>the <x>-th group in the search pattern
  3759. \eu<x>the <x>-th group, all characters uppercase
  3760. \el<x>the <x>-th group, all characters lowercase
  3761. \e{<x><e>}<s> length limited by length of <x>-th group (**)
  3762. \e?<x><e>}<s>, if the <x>-th group matches
  3763. \e!<x><e>}<s>, if the <x>-th group does not match
  3764. \e}}
  3765. \e\e\e
  3766. .TE
  3767. .IP "(*) " 
  3768. <x> can be 0 \&.\&. 9 and g10 \&.\&. g16\&. The <x>-th group is the part of the
  3769. matching string, matched by the part of the regular expressions in the
  3770. <x>-th pair of ()\&. 0 is used for the complete string\&. <e> is a replace
  3771. expression and <s> the corresponding string\&.
  3772. .IP "(**) " 
  3773. For short strings <s>, the last character will be used for padding\&. Use
  3774. `\e0' as last character to prevent padding\&.
  3775. .br
  3776. .br
  3777. @reference-end
  3778. @fi
  3779. @fi
  3780. @if-using ( cmd-reference )
  3781. @if-using(CommonUsedReferences-REF)
  3782. @reference-begin
  3783. .sp
  3784. .LP
  3785. \fB2 Origami Command Line Options\fP
  3786. .TS
  3787. center box tab();
  3788. l | l.
  3789. OptionFunction
  3790. _
  3791. -a delayspecify time between auto-saves
  3792. (1<=delay<=60,default=8)
  3793. -Aopen the list of files, instead of first file
  3794. -Cdisable copyright message
  3795. -Ddump on crash
  3796. -d dspmodespecify display mode (*)
  3797. -eechoing keyboard input on
  3798. -hshow available command line arguments
  3799. -ishow ctrl-chars inverse
  3800. -k namespecify other rc-file
  3801. -K statechoose keypad mode
  3802. N -> numerical
  3803. A -> application
  3804. -l numberfirst line in file
  3805. -m namemarks for fold-display
  3806. -M markslike -m, but give strings directly
  3807. -nload files without fold-parsing
  3808. -N linesspecify size of virtual line handling buffer
  3809. -ostart in overwrite-mode
  3810. -O valuepass data to OCL
  3811. -puse c-preprocessor-mode
  3812. -Pdo not open control terminal, if stdin isn't
  3813. -R rcpathpathlist for rc,help and msg-file
  3814. -S cmduse cmd as shell
  3815. pipe-commands are disabled
  3816. -t widthspecify the size of tabs
  3817. -T namespecify window name, after exiting Origami
  3818. -vstart in view-mode
  3819. -Vverbose-mode
  3820. -W namedisplay name in statusline
  3821. -X stringspecify OS-dependent stuff
  3822. -Zdisable suspend-origami
  3823. .TE
  3824. .IP "* " 
  3825. dspmode is a sequence of:
  3826. .TS
  3827. center box tab();
  3828. l | l.
  3829. CodeMeaning
  3830. _
  3831. ooctal display (C-?k: \e177)
  3832. ddecimal display (C-?: \ed127)
  3833. hhexadecimal display (C-?: \e7F)
  3834. mmark control characters
  3835. iinverse control characters
  3836. nnumbered control characters
  3837. pnormal characters display
  3838. 8numbered display of 8-bit characters
  3839. anumbered character display
  3840. t tabspecify tab width (tab<=0: tab like control)
  3841. .TE
  3842. .br
  3843. @reference-end
  3844. @fi
  3845. @fi
  3846. @if-using(CommonUsedReferences-REF)
  3847. @reference-begin
  3848. .br
  3849. @reference-end
  3850. @fi
  3851. @if-using(EMacs-Reference-Card-REF)
  3852. @reference-begin
  3853. .ad l
  3854. .TL
  3855. EMacs - Reference Card
  3856. .AU
  3857. Michael Haardt
  3858. .AB no
  3859. This is the reference file for EMacs, a binding for the folding-editor
  3860. Origami\&.
  3861. .AE
  3862. .sp
  3863. .LP
  3864. \fB1 EMacs Command Line Options\fP
  3865. .LP
  3866. You can use the following commad line options, to control the modes of
  3867. EMacs:
  3868. .TS
  3869. center box tab();
  3870. l | l | l.
  3871. OffOnMode
  3872. _
  3873. -Onotime-Otimetime display in the statusline
  3874. -Onoposi-Oposiposition display in the statusline
  3875. -Onofull-Ofullfull shifting display
  3876. -Onoai-Oaiautoindent
  3877. -Onomagic-Omagicregular exprsession search
  3878. -Onomagic-Oxmagicextended regular expression search
  3879. -Onoc-Occ-mode
  3880. .TE
  3881. .LP
  3882. You can also use the option '-Odefault' to use the default values:
  3883. .LP
  3884. .DS
  3885. -Otime -Onoposi -Onofull -Oai -Onomagic -Onoc
  3886. .DE
  3887. .br
  3888.  
  3889. See also in: CommonUsedReferences - 2 Origami Command Line Options
  3890.  
  3891. See also in: CommonUsedReferences - 1 Origami Regular Expressions
  3892. .sp
  3893.  
  3894. \fB4 Messages, errors and prompts\fP
  3895.  
  3896. Sometimes EMacs may want to tell you something, like when you did
  3897. something which EMacs does not allow\&. If it is something simple, such
  3898. as typing a control key sequence which is not associated with any
  3899. command, EMacs will just ignore it\&. Otherwise, it will also display an
  3900. informative error message at the bottom of the screen\&. Simple messages
  3901. are displayed in brackets, prompts will appear without brackets and end
  3902. with a question mark\&.
  3903. .LP
  3904. When starting using verbose mode, EMacs will be less ignorant and tell
  3905. you more\&. Look under command line switches and/or modes on how to use
  3906. modes\&.
  3907. .br
  3908. .sp
  3909. .LP
  3910. \fB5 The status line and the message line\fP
  3911. .LP
  3912. The line immediately above the bottom line is referred to as the "mode
  3913. line"\&. The mode line looks something like
  3914. .LP
  3915. .DS
  3916.  * EMacs 1\&.6\&.79 (None)  teach-emacs
  3917. .DE
  3918.  
  3919. This is a very useful "information" line\&.
  3920. .IP "asterisk (star) " 
  3921. indicates that changes have been made to the file\&.
  3922. Immediately after opening or saving a file, there is no star\&.
  3923. .IP "name (""EMacs"" in this case) " 
  3924. shows the name of your compiled keybinding, which runs on top of the Origami
  3925. interpreter\&.
  3926. .IP "words inside the parentheses " 
  3927. indicate the "modes" EMacs is currently in\&.
  3928. .IP "filename (""teach-emacs"" in this case) " 
  3929. is the name of the file you are currently editing\&.
  3930. .LP
  3931. If you use more than one window, each window will have its own mode
  3932. line\&.
  3933. .br
  3934. .sp
  3935. .LP
  3936. \fB6 Used notation of input\fP
  3937. .LP
  3938. In the following sections, the notation below is used to describe which
  3939. commands are bound to which keys or sequences of keys\&.
  3940. .IP "C-<chr> " 
  3941. Hold the CONTROL key while pressing the character <chr>\&.
  3942. Thus, C-F would be: hold the CONTROL key and press F\&. Some
  3943. people may be used to see ^F, here it is C-F\&.
  3944. .IP "M-<chr> " 
  3945. If you have no Meta key, then press the ESCAPE key and release
  3946. it, then press the character <chr>\&. Alternatively, if your
  3947. keyboard has a meta key, then hold it down while typing <chr>\&.
  3948. .IP "M-C-<chr> " 
  3949. If you have no Meta key, then press the ESCAPE key and release
  3950. it, then hold the CONTROL key while pressing the character <chr>\&.
  3951. Otherwise, hold down Meta and Control while typing <chr>\&.
  3952. .br
  3953. .sp
  3954. .LP
  3955. \fB7 Bound keys and key sequences\fP
  3956. .LP
  3957. Each key inserts/overwrites its character at the current cursor position,
  3958. unless it is bound to a command, in which case the command will be started\&.
  3959. If the key is start of a key sequence to which a command is bound, EMacs will
  3960. wait for the rest of that sequence and show what was typed so far in the
  3961. message line\&.  Killing text means that the text will be erased from the buffer
  3962. and appended to the kill buffer whereas deleting text means just erasing it,
  3963. although a limited undo function is available\&.
  3964. .sp
  3965. .LP
  3966. \fB7.1 The general abort command\fP
  3967. .IP "C-G " 
  3968. The EMacs command used to abort any command, no matter if it requests
  3969. input or not, is C-G\&. For example, you can used C-G to discard
  3970. a numeric argument, at the beginning of a command that you
  3971. don't want to finish, to abort loading big files and to abort
  3972. running macros\&.
  3973. .br
  3974. .sp
  3975. .LP
  3976. \fB7.2 Cursor motion\fP
  3977. .sp
  3978. .LP
  3979. \fB7.2.1 Basic cursor control (up, down, left, right)\fP
  3980. .LP
  3981. Not the best, but the most basic way to move the cursor is to use the
  3982. commands previous-line, backward-character, forward-character and
  3983. next-line\&. Here, in a more graphical form, are the commands:
  3984. .LP
  3985. .DS
  3986.                      Previous line, C-P
  3987.                            :
  3988. Backward, C-B \&.\&. Current cursor position \&.\&. Forward, C-F
  3989.                            :
  3990.                      Next line, C-N
  3991. .DE
  3992.  
  3993. You'll probably find it easy to think of these by letter: P for
  3994. previous, N for next, B for backward and F for forward\&. When you go off
  3995. the top or bottom of the screen, the text beyond the edge is shifted
  3996. onto the screen so that your instructions can be carried out while
  3997. keeping the cursor on the screen\&. If your terminal is supported, then
  3998. the cursor keys will work as well\&.
  3999. .br
  4000. .sp
  4001. .LP
  4002. \fB7.2.2 Move cursor backward/forward one word\fP
  4003. .IP "M-b " 
  4004. backward-word, moves the cursor back one word\&.
  4005. .IP "M-f " 
  4006. backward-word, moves the cursor forward one word\&.
  4007. .br
  4008. .sp
  4009. .LP
  4010. \fB7.2.3 Move cursor backward/forward one sentence\fP
  4011. .LP
  4012. The end of a sentence in EMacs means a line with a period at its end or
  4013. a period followed by two spaces\&.
  4014. .IP "M-B " 
  4015. backward-sentence\&. Moves the cursor to the beginning of the last sentence\&.
  4016. .IP "M-F " 
  4017. forward-sentence\&. Moves the cursor to the beginning of the next sentence\&.
  4018. .br
  4019. .sp
  4020. .LP
  4021. \fB7.2.4 Move cursor to the previous/next paragraph\fP
  4022. .LP
  4023. A paragraph in EMacs is text without blank lines and without a period in
  4024. the first column\&.
  4025. .IP "M-p " 
  4026. previous-paragraph, moves the cursor to the previous paragraph\&.
  4027. .IP "M-n " 
  4028. next-paragraph, moves the cursor to the next paragraph\&.
  4029. .br
  4030. .sp
  4031. .LP
  4032. \fB7.2.5 Move cursor to the previous/next page\fP
  4033. .IP "M-v " 
  4034. previous-page, move one page back\&. If your terminal is supported, then
  4035. the NextPage key will also work\&.
  4036. .IP "C-V " 
  4037. next-page, move one page forward\&. If your terminal is supported, then
  4038. the PreviousPage key will also work\&.
  4039. .br
  4040. .sp
  4041. .LP
  4042. \fB7.2.6 Move cursor to the beginning/end of a line\fP
  4043. .IP "C-A " 
  4044. beginning-of-line, move to the beginning of line\&. If your terminal is
  4045. supported, the begin key will also work\&.
  4046. .IP "C-E " 
  4047. end-of-line, move to the end of line\&. If your terminal is supported, the
  4048. end key will also work\&.
  4049. .br
  4050. .sp
  4051. .LP
  4052. \fB7.2.7 Move cursor to the beginning/end of a fold\fP
  4053. .IP "M-< " 
  4054. beginning-of-fold, move to the beginning of the entered fold\&.
  4055. If your terminal is supported, the home key will also work\&.
  4056. .IP "M-> " 
  4057. end-of-fold, move to the end of the entered fold\&.
  4058. .br
  4059. .sp
  4060. .LP
  4061. \fB7.2.8 Move cursor to line with a specific number\fP
  4062. .IP "M-g " 
  4063. go-to-line, moves the cursor to the specified line in an entered
  4064. fold\&. With a numeric argument, Origami jumps to that line,
  4065. otherwise a prompt asking for it will be issued\&.
  4066. .br
  4067. .sp
  4068. .LP
  4069. \fB7.2.9 Move cursor to matching paren, bracket or brace\fP
  4070. .IP "M-# " 
  4071. goto-matching-fence, move cursor to matching paren, bracket or brace\&. If the
  4072. cursor stands not on one of the above mentioned fences, EMacs tries to find
  4073. one of the following more complex structures (Skip1 -> Skip2 [ -> Skip3 ] ->
  4074. Skip1 \&.\&. ):
  4075. .TS
  4076. center box tab();
  4077. l | l | l | l.
  4078. LanguageSkip1Skip2Skip3
  4079. _
  4080. all#ifdef#else#endif
  4081. all#if#else#endif
  4082. OCL@if-using@fi
  4083. .TE
  4084. .br
  4085. .sp
  4086. .LP
  4087. \fB7.2.10 Move cursor in and out of folds\fP
  4088. .IP "C-O " 
  4089. open-fold, opens the fold under the cursor\&. If your terminal
  4090. is supported, then the open key will work as well\&.
  4091. .IP "C-C " 
  4092. close-fold, closes the current fold and folds inside it\&. If
  4093. your terminal is supported, then the close key will work as well\&.
  4094. .IP "M-C-O " 
  4095. enter-fold, enters the fold under the cursor\&. If the line is not a fold,
  4096. Origami tries to follow the given include statement or prompts for a filename\&.
  4097. The environement variable `ORIGAMILIBPATH' may contain a `:' separated list of
  4098. directories (default is `/usr/include')\&.
  4099. .IP "M-C-C " 
  4100. exit-fold, exits the current fold\&.
  4101. .br
  4102. .br
  4103. .sp
  4104. .LP
  4105. \fB7.3 Editing\fP
  4106. .sp
  4107. .LP
  4108. \fB7.3.1 Creating a new line\fP
  4109. .IP "C-M " 
  4110. newline-and-indent, splits the line at the cursor position\&.  If mode
  4111. .IP "C-J " 
  4112. Autoindent is active, then the new line is indented as the previous
  4113. line\&.
  4114. .br
  4115. .sp
  4116. .LP
  4117. \fB7.3.2 Deleting characters\fP
  4118. .IP "C-H " 
  4119. delete-previous-character, deletes the character left to the
  4120. cursor\&.  Most backspace keys also send C-H\&.
  4121. .IP "C-D " 
  4122. delete-character, deletes the character under the cursor\&.  Most
  4123. .IP "C-? " 
  4124. delete keys also send a C-?\&.
  4125. .br
  4126. .sp
  4127. .LP
  4128. \fB7.3.3 Exchanging characters\fP
  4129. .IP "C-T " 
  4130. transpose-characters, exchanges the character under the cursor
  4131. with the character left from the cursor, then moves the cursor
  4132. forward one character\&.
  4133. .br
  4134. .sp
  4135. .LP
  4136. \fB7.3.4 Deleting words\fP
  4137. .IP "M-C-H " 
  4138. delete-word-backward, deletes word backwards from cursor position\&.
  4139. .IP "M-C-D " 
  4140. delete-word, deletes word under cursor position\&.
  4141. .br
  4142. .sp
  4143. .LP
  4144. \fB7.3.5 Changing capitalization of words\fP
  4145. .IP "M-c " 
  4146. case-word-capitalize, capitalizes the word starting at cursor
  4147. position and moves the cursor forward one word\&.
  4148. .IP "M-u " 
  4149. case-word-upper, changes the word to upper case starting at
  4150. cursor position and moves the cursor forward one word\&.
  4151. .IP "M-l " 
  4152. case-word-lower, changes the word to lower case starting at
  4153. cursor position and moves the cursor forward one word\&.
  4154. .br
  4155. .sp
  4156. .LP
  4157. \fB7.3.6 Killing, deleting, and getting erased text back\fP
  4158. .IP "C-K " 
  4159. kill-line, kills all text from cursor position to end of line\&.
  4160. If the cursor was already at the end of the line, the newline
  4161. character ending the line will be killed, joining the current line
  4162. with the next line\&.
  4163. .IP "M-C-K  |  delline " 
  4164. delete-line, deleted all text from cursor position to end of line\&.
  4165. If the cursor was already at the end of the line, the newline
  4166. character ending the line will be deleted, joining the current line
  4167. with the next line\&.
  4168. .IP "C-Y " 
  4169. insert-folded-kill-buffer, moves the kill buffer in a fold and
  4170. yanks this fold back
  4171. .IP "C-X C-Y " 
  4172. undo-delete-line, yank the last deleted line back
  4173. .br
  4174. .sp
  4175. .LP
  4176. \fB7.3.7 copy-to-kill-buffer\fP
  4177. .IP "M-k " 
  4178. copy-to-kill-buffer, appends the line to the kill buffer without
  4179. killing it
  4180. .br
  4181. .sp
  4182. .LP
  4183. \fB7.3.8 unfold-fold\fP
  4184. .IP "C-U " 
  4185. unfold-fold, removes the fold marks of the fold under the cursor
  4186. .br
  4187. .sp
  4188. .LP
  4189. \fB7.3.9 auto-header\fP
  4190. .IP "C-X C-H " 
  4191. auto-header, copies the first in of the fold under the cursor to
  4192. the fold header
  4193. .br
  4194. .sp
  4195. .LP
  4196. \fB7.3.10 toggle-file-fold\fP
  4197. .IP "C-X C-F " 
  4198. toggle-file-fold, toggles between a fold and a file-fold
  4199. .br
  4200. .sp
  4201. .LP
  4202. \fB7.3.11 toggle-attach-file-to-fold\fP
  4203. .IP "C-X C-A " 
  4204. toggle-attach-file-to-fold, attaches a file to a fold to create a
  4205. file-fold for an already existing file, or unlinks the file from
  4206. the fold
  4207. .br
  4208. .br
  4209. .sp
  4210. .LP
  4211. \fB7.4 Regions\fP
  4212. .LP
  4213. Regions in EMacs are parts of the buffer, one end marked by an invisible
  4214. mark, the other by the cursor\&. The region includes the beginning
  4215. position and excludes the ending position\&. Regions have to respect the
  4216. fold structure\&.
  4217. .IP "C-@ " 
  4218. set-mark, set an invisible mark at the current cursor position\&.
  4219. This function is also bound to control-space, because most keyboards
  4220. generate the same character on C-@ and control-space\&.
  4221. .IP "C-X C-X " 
  4222. change-mark-and-position, set the invisible mark at the cursor
  4223. position and move the cursor to the previos location of the mark\&.
  4224. .IP "C-X x " 
  4225. highlight-region, show the marked region highlighted\&. A set argument will
  4226. enhance the display time\&.
  4227. .IP "M-C-W " 
  4228. delete-region, delete a region\&. This can be undone by undo-delete-line\&.
  4229. .IP "C-W " 
  4230. kill-region, move the region to the kill buffer\&.
  4231. .IP "M-w " 
  4232. copy-region, copy the region in the kill buffer\&.
  4233. .IP "M-C-@ " 
  4234. fold-region, folds the region\&.
  4235. .br
  4236. .sp
  4237. .LP
  4238. \fB7.5 Search/replace\fP
  4239. .sp
  4240. .LP
  4241. \fB7.5.1 Search for a string\fP
  4242. .IP "M-C-S " 
  4243. search-forward, prompts for a string and moves the cursor
  4244. to the next occurence of it\&.
  4245. .IP "M-C-R " 
  4246. search-reverse, prompts for a string and moves the cursor
  4247. to the last occurence of it\&.
  4248. .br
  4249. .sp
  4250. .LP
  4251. \fB7.5.2 Incremental search for a string\fP
  4252. .LP
  4253. Incremental search allows you to see the result of the search while the
  4254. search string is typed/changed\&.
  4255. .IP "C-S " 
  4256. incremental-search-forward, switches to incremental search mode
  4257. with default direction forward\&.
  4258. .IP "C-R " 
  4259. incremental-search-reverse, switches to incremental search mode
  4260. with default direction backward\&.
  4261. .sp
  4262. .LP
  4263. \fB7.5.2.1 Functions in incremental search mode\fP
  4264. .LP
  4265. During incremental search, you can use the following commands:
  4266. .IP "<chr> " 
  4267. Append the character to the search pattern and search in current
  4268. search direction\&.
  4269. .IP "C-S " 
  4270. Move the cursor to the next occurence of the search string and
  4271. switch to search direction forward\&.
  4272. .IP "C-R " 
  4273. Move to the previous occurence and switch to searching backward\&.
  4274. .IP "C-P " 
  4275. Go back in search history\&.
  4276. .IP "C-N " 
  4277. Go forward in search history\&.
  4278. .IP "C-M  |  C-J " 
  4279. exit incremental search, leave the cursor where it is\&.
  4280. .IP "C-H " 
  4281. remove last letter from search pattern\&.
  4282. .IP "C-G " 
  4283. aborts incremental search, sets the cursor to where it was before\&.
  4284. .br
  4285. .br
  4286. .sp
  4287. .LP
  4288. \fB7.5.3 Search and replace\fP
  4289. .IP "M-R " 
  4290. replace-string, asks for a search string and a replace string
  4291. and replaces all occurences of the search string by the replace
  4292. string\&.
  4293. .IP "M-R " 
  4294. query-replace-string, asks for a search string and a replace
  4295. string and gives the choice to replace the search string by the
  4296. replace string at all occurences\&. During query-replace-string
  4297. the following commands are available:
  4298. .RS
  4299. .IP "Y " 
  4300. replace and go to next occurence
  4301. .RE
  4302. .RS
  4303. .IP "N " 
  4304. don't replace and go to next occurence
  4305. .RE
  4306. .RS
  4307. .IP "! " 
  4308. replace all further occurences
  4309. .RE
  4310. .RS
  4311. .IP "A " 
  4312. abort
  4313. .RE
  4314. .RS
  4315. .IP "\&. " 
  4316. replace this occurence and abort after
  4317. .RE
  4318. .br
  4319. .br
  4320. .sp
  4321. .LP
  4322. \fB7.6 Files\fP
  4323. .IP "C-X C-I " 
  4324. insert-file, inserts the contents of a file at the current position into the
  4325. buffer\&.
  4326. .IP "C-X C-S " 
  4327. save-file, writes the buffer back to the edited file\&. If your
  4328. terminal is supported, the save key will also work\&.
  4329. .IP "C-X C-W " 
  4330. write-file, writes the buffer to another file\&.
  4331. .IP "C-X C-R " 
  4332. read-file, reads another file into the buffer\&.  A set argument will read the
  4333. file without parsing\&.  The state of the mode parsing will not be changed\&.
  4334. .IP "C-X C-N " 
  4335. next-file, reads next file from command line argument list into
  4336. the buffer\&.
  4337. .IP "C-X C-P " 
  4338. previous-file, reads previous file from command line argument list into
  4339. the buffer\&.
  4340. .IP "M-~ " 
  4341. set-file-unchanged, marks the buffer as unchanged\&.
  4342. .br
  4343. .sp
  4344. .LP
  4345. \fB7.7 Buffers\fP
  4346. .LP
  4347. Origami has a different buffer concept than most other emacs
  4348. implementations\&. Each buffer has its own (and only) window to edit it\&.
  4349. Buffers may not be currently visible, so list-buffers is an important
  4350. function if you get lost\&.
  4351. .IP "C-X C-B " 
  4352. list-buffers, show a list of all used buffers and offers a menu
  4353. for selecting another buffer (return moves you back to the old
  4354. position)\&. If your terminal supports it, the select key will
  4355. also work\&.
  4356. .IP "C-X b " 
  4357. change-buffername, changes the name of the current buffer
  4358. .sp
  4359. .LP
  4360. \fB7.7.1 Opening and closing buffers\fP
  4361. .IP "C-X ""2 " 
  4362. open-buffer, open a second buffer by parting the current window
  4363. horizontally\&.  A set argument will read the file without parsing\&.  The
  4364. state of the mode parsing will not be changed\&.
  4365. .IP "C-X ""3 " 
  4366. open-adjacent-buffer, open a second buffer by parting the current window
  4367. vertically\&.  A set argument will read the file without parsing\&.  The state
  4368. of the mode parsing will not be changed\&.
  4369. .IP "C-X ""0 " 
  4370. exit-buffer, close the current buffer and unify the window with
  4371. the window of the previous buffer
  4372. .IP "C-X @ " 
  4373. show a special buffer containing the last messages\&.
  4374. .br
  4375. .sp
  4376. .LP
  4377. \fB7.7.2 Changing between buffers\fP
  4378. .IP "M-C-X p " 
  4379. previous-buffer, go to the previous buffer\&.
  4380. .IP "M-C-X n " 
  4381. next-buffer, go to the next buffer\&.
  4382. .IP "C-X o " 
  4383. other-buffer, go cyclic to the next buffer\&.
  4384. .IP "M-C-X C-P " 
  4385. up-buffer, move up one buffer
  4386. .IP "M-C-X C-N " 
  4387. down-buffer, move down one buffer
  4388. .IP "M-C-X C-B " 
  4389. left-buffer, move left one buffer
  4390. .IP "M-C-X C-F " 
  4391. right-buffer, move right one buffer
  4392. .br
  4393. .sp
  4394. .LP
  4395. \fB7.7.3 Resizing buffers\fP
  4396. .IP "C-X ""1 " 
  4397. full-size-buffer, extend the size of the current buffer to screen size
  4398. .IP "M-C-X ^ " 
  4399. grow-buffer, grow current buffer vertically
  4400. .IP "M-C-X v " 
  4401. shrink-buffer, shrink current buffer vertically
  4402. .IP "M-C-X < " 
  4403. widen-buffer, grow current buffer horizontally
  4404. .IP "M-C-X > " 
  4405. narrow-buffer, shrink current buffer horizontally
  4406. .br
  4407. .br
  4408. .sp
  4409. .LP
  4410. \fB7.8 Modes\fP
  4411. .LP
  4412. Unlike most other Emacs implementations, Origami does not seperate
  4413. between major and minor modes\&. The mode default values can be set
  4414. using command line switches:
  4415. .sp
  4416. .LP
  4417. \fB7.8.1 Origami Command Line Options\fP
  4418. .br
  4419. .LP
  4420. See also in: 1 EMacs Command Line Options
  4421. .LP
  4422. All modes are related to a buffer, they are set with C-X "m <mode-key>
  4423. and deleted with C-X C-M <mode-key>\&. The following mode-keys are
  4424. available:
  4425. .IP """a " 
  4426. autosave, asks for a time interval and saves the text each time
  4427. after this interval expires
  4428. .IP """c " 
  4429. c-mode, syntax support for C
  4430. .IP """d " 
  4431. show a menu for changing the used character display mode\&. This
  4432. mode also can only be changed, not deleted\&.
  4433. .IP """f " 
  4434. full-shift, moving over the right border of the screen will shift
  4435. the whole buffer, not only the current line\&.
  4436. .IP """i " 
  4437. autoindent, new lines will be indented as their predecessor
  4438. .IP """l " 
  4439. set-language, sets a new language for fold comments\&. This mode
  4440. can only be changed and not deleted\&.
  4441. .IP """m " 
  4442. basic-regular-expression, search/replace will use regular
  4443. expressions
  4444. .IP """M " 
  4445. extended-regular-expression, search/replace will use extended
  4446. expressions\&.
  4447. .IP """n " 
  4448. no-parse, reading files will be done without fold parsing
  4449. .IP """o " 
  4450. overwrite, new text overwrites existing text instead of being
  4451. inserted
  4452. .IP """p " 
  4453. position, always show current position in status line
  4454. .IP """t " 
  4455. time, display the time right from the filename
  4456. .IP """v " 
  4457. view, text can only be viewd but not changed
  4458. .IP """V " 
  4459. If set, EMacs will be more verbose in some situations\&.
  4460. .IP """w " 
  4461. wrap, wraps a word to the next line if neccessary
  4462. .IP """# " 
  4463. hash-shifting
  4464. .br
  4465. .sp
  4466. .LP
  4467. \fB7.9 Arguments\fP
  4468. .IP "M-<number> " 
  4469. set-argument-<number> (number can be a digit from 0 to 9),
  4470. set number as argument for the next executed command\&. Any
  4471. following typed digits will be part of the number\&. Most
  4472. commands simply are executed number times, when prefixed by
  4473. an argument\&.
  4474. .br
  4475. .sp
  4476. .LP
  4477. \fB7.10 Shell Commands\fP
  4478. .sp
  4479. .LP
  4480. \fB7.10.1 shell\fP
  4481. .IP "shift-command  |  C-X ""c " 
  4482. shell, starts a sub shell
  4483. .br
  4484. .sp
  4485. .LP
  4486. \fB7.10.2 shell-command\fP
  4487. .IP "command  |  C-X ""! " 
  4488. shell-command, starts a sub shell with a given command
  4489. .br
  4490. .sp
  4491. .LP
  4492. \fB7.10.3 filter-buffer\fP
  4493. .IP "C-X ""| " 
  4494. filter-buffer, first saves  current file and then filters it
  4495. through the specified filter command\&.
  4496. .br
  4497. .sp
  4498. .LP
  4499. \fB7.10.4 pipe-to-command\fP
  4500. .IP "C-X ""> " 
  4501. pipe-to-command, feeds the command with the current file as
  4502. standard input\&.
  4503. .br
  4504. .sp
  4505. .LP
  4506. \fB7.10.5 pipe-from-command\fP
  4507. .IP "C-X ""< " 
  4508. pipe-from-command, inserts standard output from command at the
  4509. current position\&.
  4510. .br
  4511. .sp
  4512. .LP
  4513. \fB7.10.6 make-it\fP
  4514. .IP "M-x m " 
  4515. make-it, invoke make
  4516. .br
  4517. .sp
  4518. .LP
  4519. \fB7.10.7 compile-it\fP
  4520. .IP "M-x c " 
  4521. compile-it, invoke C compiler
  4522. .br
  4523. .sp
  4524. .LP
  4525. \fB7.10.8 beautify-c-code\fP
  4526. .IP "C-X ""i " 
  4527. beautify-c-code, filter buffer through beautifier
  4528. .br
  4529. .sp
  4530. .LP
  4531. \fB7.10.9 check-out\fP
  4532. .IP "M-x o " 
  4533. check-out, checks current file out but does *not* reload the
  4534. buffer\&.
  4535. .br
  4536. .sp
  4537. .LP
  4538. \fB7.10.10 check-in\fP
  4539. .IP "M-x i " 
  4540. check-in, saves buffer and checks file in
  4541. .br
  4542. .sp
  4543. .LP
  4544. \fB7.10.11 spell-it\fP
  4545. .IP "M-x s " 
  4546. spell-it, runs current file through spell and starts an
  4547. interactive search and replace for all misspelled words\&.
  4548. .br
  4549. .br
  4550. .sp
  4551. .LP
  4552. \fB7.11 More advanced functions\fP
  4553. .sp
  4554. .LP
  4555. \fB7.11.1 C-Mode\fP
  4556. .LP
  4557. The following characters have a special meaning in C-mode:
  4558. .LP
  4559. .DS
  4560. ( [ { '  "  ;
  4561. .DE
  4562.  
  4563. Just play around to get used to them, once you are they save lots of
  4564. typing\&. In C-mode words consist of letters, digits and underscores\&.
  4565. .br
  4566. .sp
  4567. .LP
  4568. \fB7.11.2 Tags\fP
  4569. .sp
  4570. .LP
  4571. \fB7.11.2.1 enter-and-go-tags-buffer\fP
  4572. .IP "M-\&. " 
  4573. enter-and-go-tags-buffer, prompt for tag and go to tagged
  4574. position (open buffer, if needed)
  4575. .IP ""
  4576. filename-or-tag-completion can also be used\&. In this case, the
  4577. first tag starting with the given text is used\&.
  4578. .LP
  4579. See also in: tags-mac-reference-file - 2 Tags file
  4580. .br
  4581. .sp
  4582. .LP
  4583. \fB7.11.2.2 find-and-go-tags-buffer\fP
  4584. .IP "M-, " 
  4585. find-and-go-tags-buffer, like enter-and-go-tags-buffer, but use
  4586. the word under the cursor
  4587. .LP
  4588. See also in: tags-mac-reference-file - 2 Tags file
  4589. .br
  4590. .sp
  4591. .LP
  4592. \fB7.11.2.3 set-user-tags-file\fP
  4593. .IP "C-X t " 
  4594. set-user-tags-file, define a new tags file (empty input uses
  4595. default tags files)\&.
  4596. .LP
  4597. See also in: tags-mac-reference-file - 2 Tags file
  4598. .br
  4599. .br
  4600. .sp
  4601. .LP
  4602. \fB7.11.3 Macros\fP
  4603. .sp
  4604. .LP
  4605. \fB7.11.3.1 start-define-macro\fP
  4606. .IP "C-X ""( " 
  4607. define-macro, starts recording a keyboard macro
  4608. .br
  4609. .sp
  4610. .LP
  4611. \fB7.11.3.2 end-define-macro\fP
  4612. .IP "C-X "") " 
  4613. define-macro, ends recording a keyboard macro
  4614. .br
  4615. .sp
  4616. .LP
  4617. \fB7.11.3.3 execute-macro\fP
  4618. .IP "C-X ""e " 
  4619. execute-macro, executes a recorded keyboard macro
  4620. .br
  4621. .br
  4622. .sp
  4623. .LP
  4624. \fB7.11.4 center-and-redraw-display\fP
  4625. .IP "C-L " 
  4626. center-and-redraw-display, redraws screen bringing the current
  4627. line to the middle of the screen\&.
  4628. .br
  4629. .sp
  4630. .LP
  4631. \fB7.11.5 redraw-display\fP
  4632. .IP "refresh  |  M-C-L " 
  4633. redraw, redraws screen e\&.g\&. after write(1)s from other people
  4634. etc\&.
  4635. .br
  4636. .sp
  4637. .LP
  4638. \fB7.11.6 describe-bindings\fP
  4639. .IP "shift-help  |  C-X ""? " 
  4640. describe-bindings, shows all commands and where they are bound to
  4641. .br
  4642. .sp
  4643. .LP
  4644. \fB7.11.7 describe-fold\fP
  4645. .IP "C-X ""= " 
  4646. describe-fold, gives you some information about your position in
  4647. the text
  4648. .br
  4649. .sp
  4650. .LP
  4651. \fB7.11.8 quote-character\fP
  4652. .IP "C-Q " 
  4653. quote-character, simply insert the next character and do not
  4654. parse it as a command
  4655. .br
  4656. .sp
  4657. .LP
  4658. \fB7.11.9 filename-or-tag-completion\fP
  4659. .IP "M-C-I " 
  4660. filename-or-tag-completion, complete a word to a filename\&. This
  4661. function works everywhere, not only in prompts! If
  4662. filename-or-tag-completion is used outside of prompts and if
  4663. there is no filename to complete, Emacs tries to complete the
  4664. started word as tag\&.
  4665. .LP
  4666. See also in: tags-mac-reference-file - 2 Tags file
  4667. .br
  4668. .sp
  4669. .LP
  4670. \fB7.11.10 fill-paragraph\fP
  4671. .IP "M-q " 
  4672. fill-paragraph, fills paragraph from cursor to end of paragraph
  4673. .br
  4674. .sp
  4675. .LP
  4676. \fB7.11.11 set-fill-column\fP
  4677. .IP "C-X ""f " 
  4678. set-fill-column, sets fill column to argument, or cursor position
  4679. if none is given, or asks for it if cursor if at the left margin\&.
  4680. .br
  4681. .br
  4682. .sp
  4683. .LP
  4684. \fB7.12 How to get out\fP
  4685. .sp
  4686. .LP
  4687. \fB7.12.1 exit-origami\fP
  4688. .IP "exit  |  C-X C-C " 
  4689. exit-origami
  4690. .br
  4691. .sp
  4692. .LP
  4693. \fB7.12.2 save-and-exit-origami\fP
  4694. .IP "shift-exit  |  M-Z " 
  4695. save-and-exit-origami
  4696. .br
  4697. .sp
  4698. .LP
  4699. \fB7.12.3 suspend-origami\fP
  4700. .IP "suspend  |  C-Z " 
  4701. suspend-origami
  4702. .br
  4703. .br
  4704. .sp
  4705. .LP
  4706. \fB7.13 Funny Functions\fP
  4707. .sp
  4708. .LP
  4709. \fB7.13.1 sokoban\fP
  4710. .IP "M-X k " 
  4711.  
  4712. .sp
  4713. .IP ""
  4714. \fB7.13.1.1 sokoban\fP
  4715. .br
  4716. .br
  4717. .sp
  4718. .LP
  4719. \fB7.13.2 towers-of-hanoi\fP
  4720. .IP "M-X t " 
  4721. Play the well known game towers-of-hanoi at the bottom of the current buffer\&.
  4722. set-argument can be used, to control the height\&.
  4723. .br
  4724. .br
  4725. .br
  4726. .br
  4727. @reference-end
  4728. @fi
  4729.